diff options
Diffstat (limited to 'drivers/s390/block/dasd_eckd.c')
-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 36ba45849874..44adf8496bda 100644 --- a/drivers/s390/block/dasd_eckd.c +++ b/drivers/s390/block/dasd_eckd.c | |||
@@ -1206,14 +1206,13 @@ dasd_eckd_build_cp(struct dasd_device * device, struct request *req) | |||
1206 | count = 0; | 1206 | count = 0; |
1207 | cidaw = 0; | 1207 | cidaw = 0; |
1208 | rq_for_each_segment(bv, req, iter) { | 1208 | rq_for_each_segment(bv, req, iter) { |
1209 | if (bv->bv_len & (blksize - 1)) | 1209 | if (bv->bv_len & (blksize - 1)) |
1210 | /* Eckd can only do full blocks. */ | 1210 | /* Eckd can only do full blocks. */ |
1211 | return ERR_PTR(-EINVAL); | 1211 | return ERR_PTR(-EINVAL); |
1212 | count += bv->bv_len >> (device->s2b_shift + 9); | 1212 | count += bv->bv_len >> (device->s2b_shift + 9); |
1213 | #if defined(CONFIG_64BIT) | 1213 | #if defined(CONFIG_64BIT) |
1214 | if (idal_is_needed (page_address(bv->bv_page), | 1214 | if (idal_is_needed (page_address(bv->bv_page), bv->bv_len)) |
1215 | bv->bv_len)) | 1215 | cidaw += bv->bv_len >> (device->s2b_shift + 9); |
1216 | cidaw += bv->bv_len >> (device->s2b_shift + 9); | ||
1217 | #endif | 1216 | #endif |
1218 | } | 1217 | } |
1219 | /* Paranoia. */ | 1218 | /* Paranoia. */ |