diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-23 13:02:14 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-23 13:02:14 -0400 |
commit | 9fd815b55f31be48dbb3dd23922587d247a4e497 (patch) | |
tree | 63814130acf3e472cc660ae71208c146f16dc5d6 /drivers/s390/block | |
parent | 31bbb9b58d1e8ebcf2b28c95c2250a9f8e31e397 (diff) | |
parent | ed87b27e00d2ca240f62f3903583a2f1541fb9ef (diff) |
Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6
* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6: (22 commits)
[S390] Update default configuration.
[S390] hibernate: Do real CPU swap at resume time
[S390] dasd: tolerate devices that have no feature codes
[S390] zcrypt: Do not add/remove devices in s/r callbacks
[S390] hibernate: make sure pfn_is_nosave handles lowcore pages
[S390] smp: introduce LC_ORDER and simplify lowcore handling
[S390] ptrace: use common code for simple peek/poke operations
[S390] fix disabled_wait inline assembly clobber list
[S390] Change kernel_page_present coding style.
[S390] hibernation: reset system after resume
[S390] hibernation: fix guest page hinting related crash
[S390] Get rid of init_module/delete_module compat functions.
[S390] Convert sys_execve to function with parameters.
[S390] Convert sys_clone to function with parameters.
[S390] qdio: change state of all primed input buffers
[S390] qdio: reduce per device debug messages
[S390] cio: introduce consistent subchannel scanning
[S390] cio: idset use actual number of ssids
[S390] cio: dont kfree vmalloced memory
[S390] cio: introduce css_settle
...
Diffstat (limited to 'drivers/s390/block')
-rw-r--r-- | drivers/s390/block/dasd_eckd.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c index bd9fe2e36dce..ab3521755588 100644 --- a/drivers/s390/block/dasd_eckd.c +++ b/drivers/s390/block/dasd_eckd.c | |||
@@ -935,6 +935,7 @@ static int dasd_eckd_read_features(struct dasd_device *device) | |||
935 | struct dasd_eckd_private *private; | 935 | struct dasd_eckd_private *private; |
936 | 936 | ||
937 | private = (struct dasd_eckd_private *) device->private; | 937 | private = (struct dasd_eckd_private *) device->private; |
938 | memset(&private->features, 0, sizeof(struct dasd_rssd_features)); | ||
938 | cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1 /* PSF */ + 1 /* RSSD */, | 939 | cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1 /* PSF */ + 1 /* RSSD */, |
939 | (sizeof(struct dasd_psf_prssd_data) + | 940 | (sizeof(struct dasd_psf_prssd_data) + |
940 | sizeof(struct dasd_rssd_features)), | 941 | sizeof(struct dasd_rssd_features)), |
@@ -982,7 +983,9 @@ static int dasd_eckd_read_features(struct dasd_device *device) | |||
982 | features = (struct dasd_rssd_features *) (prssdp + 1); | 983 | features = (struct dasd_rssd_features *) (prssdp + 1); |
983 | memcpy(&private->features, features, | 984 | memcpy(&private->features, features, |
984 | sizeof(struct dasd_rssd_features)); | 985 | sizeof(struct dasd_rssd_features)); |
985 | } | 986 | } else |
987 | dev_warn(&device->cdev->dev, "Reading device feature codes" | ||
988 | " failed with rc=%d\n", rc); | ||
986 | dasd_sfree_request(cqr, cqr->memdev); | 989 | dasd_sfree_request(cqr, cqr->memdev); |
987 | return rc; | 990 | return rc; |
988 | } | 991 | } |
@@ -1144,9 +1147,7 @@ dasd_eckd_check_characteristics(struct dasd_device *device) | |||
1144 | } | 1147 | } |
1145 | 1148 | ||
1146 | /* Read Feature Codes */ | 1149 | /* Read Feature Codes */ |
1147 | rc = dasd_eckd_read_features(device); | 1150 | dasd_eckd_read_features(device); |
1148 | if (rc) | ||
1149 | goto out_err3; | ||
1150 | 1151 | ||
1151 | /* Read Device Characteristics */ | 1152 | /* Read Device Characteristics */ |
1152 | rc = dasd_generic_read_dev_chars(device, DASD_ECKD_MAGIC, | 1153 | rc = dasd_generic_read_dev_chars(device, DASD_ECKD_MAGIC, |
@@ -3241,9 +3242,7 @@ int dasd_eckd_restore_device(struct dasd_device *device) | |||
3241 | } | 3242 | } |
3242 | 3243 | ||
3243 | /* Read Feature Codes */ | 3244 | /* Read Feature Codes */ |
3244 | rc = dasd_eckd_read_features(device); | 3245 | dasd_eckd_read_features(device); |
3245 | if (rc) | ||
3246 | goto out_err; | ||
3247 | 3246 | ||
3248 | /* Read Device Characteristics */ | 3247 | /* Read Device Characteristics */ |
3249 | memset(&private->rdc_data, 0, sizeof(private->rdc_data)); | 3248 | memset(&private->rdc_data, 0, sizeof(private->rdc_data)); |