aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/block/dasd_eckd.c
diff options
context:
space:
mode:
authorStefan Weinhuber <wein@de.ibm.com>2009-06-12 04:26:36 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2009-06-12 04:27:35 -0400
commit45b44d76d373e66d08e0c745dc82ff9123103588 (patch)
tree5a871000e9174f6be94a457625bcf1413b3386ea /drivers/s390/block/dasd_eckd.c
parentd0591485e15ccd908f91058f7da134248dcdbbb3 (diff)
[S390] dasd: no High Performance FICON in 31-bit mode
The High Performance FICON feature is not supported in 31-bit mode, no matter what the various flags say. So we need to check for the CONFIG_64BIT option as well. Signed-off-by: Stefan Weinhuber <wein@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/block/dasd_eckd.c')
-rw-r--r--drivers/s390/block/dasd_eckd.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c
index a41c94053e64..81f8819eaf19 100644
--- a/drivers/s390/block/dasd_eckd.c
+++ b/drivers/s390/block/dasd_eckd.c
@@ -2336,9 +2336,10 @@ static struct dasd_ccw_req *dasd_eckd_build_cp(struct dasd_device *startdev,
2336{ 2336{
2337 int tpm, cmdrtd, cmdwtd; 2337 int tpm, cmdrtd, cmdwtd;
2338 int use_prefix; 2338 int use_prefix;
2339 2339#if defined(CONFIG_64BIT)
2340 struct dasd_eckd_private *private;
2341 int fcx_in_css, fcx_in_gneq, fcx_in_features; 2340 int fcx_in_css, fcx_in_gneq, fcx_in_features;
2341#endif
2342 struct dasd_eckd_private *private;
2342 struct dasd_device *basedev; 2343 struct dasd_device *basedev;
2343 sector_t first_rec, last_rec; 2344 sector_t first_rec, last_rec;
2344 sector_t first_trk, last_trk; 2345 sector_t first_trk, last_trk;
@@ -2361,11 +2362,15 @@ static struct dasd_ccw_req *dasd_eckd_build_cp(struct dasd_device *startdev,
2361 last_offs = sector_div(last_trk, blk_per_trk); 2362 last_offs = sector_div(last_trk, blk_per_trk);
2362 cdlspecial = (private->uses_cdl && first_rec < 2*blk_per_trk); 2363 cdlspecial = (private->uses_cdl && first_rec < 2*blk_per_trk);
2363 2364
2364 /* is transport mode supported ? */ 2365 /* is transport mode supported? */
2366#if defined(CONFIG_64BIT)
2365 fcx_in_css = css_general_characteristics.fcx; 2367 fcx_in_css = css_general_characteristics.fcx;
2366 fcx_in_gneq = private->gneq->reserved2[7] & 0x04; 2368 fcx_in_gneq = private->gneq->reserved2[7] & 0x04;
2367 fcx_in_features = private->features.feature[40] & 0x80; 2369 fcx_in_features = private->features.feature[40] & 0x80;
2368 tpm = fcx_in_css && fcx_in_gneq && fcx_in_features; 2370 tpm = fcx_in_css && fcx_in_gneq && fcx_in_features;
2371#else
2372 tpm = 0;
2373#endif
2369 2374
2370 /* is read track data and write track data in command mode supported? */ 2375 /* is read track data and write track data in command mode supported? */
2371 cmdrtd = private->features.feature[9] & 0x20; 2376 cmdrtd = private->features.feature[9] & 0x20;