diff options
Diffstat (limited to 'drivers/s390/block/dasd_diag.c')
-rw-r--r-- | drivers/s390/block/dasd_diag.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/s390/block/dasd_diag.c b/drivers/s390/block/dasd_diag.c index ab8754e566bc..ba80fdea7ebf 100644 --- a/drivers/s390/block/dasd_diag.c +++ b/drivers/s390/block/dasd_diag.c | |||
@@ -6,7 +6,7 @@ | |||
6 | * Bugreports.to..: <Linux390@de.ibm.com> | 6 | * Bugreports.to..: <Linux390@de.ibm.com> |
7 | * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999,2000 | 7 | * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999,2000 |
8 | * | 8 | * |
9 | * $Revision: 1.51 $ | 9 | * $Revision: 1.53 $ |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | 12 | #include <linux/config.h> |
@@ -25,6 +25,7 @@ | |||
25 | #include <asm/io.h> | 25 | #include <asm/io.h> |
26 | #include <asm/s390_ext.h> | 26 | #include <asm/s390_ext.h> |
27 | #include <asm/todclk.h> | 27 | #include <asm/todclk.h> |
28 | #include <asm/vtoc.h> | ||
28 | 29 | ||
29 | #include "dasd_int.h" | 30 | #include "dasd_int.h" |
30 | #include "dasd_diag.h" | 31 | #include "dasd_diag.h" |
@@ -74,7 +75,7 @@ dia250(void *iob, int cmd) | |||
74 | int rc; | 75 | int rc; |
75 | 76 | ||
76 | __asm__ __volatile__( | 77 | __asm__ __volatile__( |
77 | #ifdef CONFIG_ARCH_S390X | 78 | #ifdef CONFIG_64BIT |
78 | " lghi %0,3\n" | 79 | " lghi %0,3\n" |
79 | " lgr 0,%3\n" | 80 | " lgr 0,%3\n" |
80 | " diag 0,%2,0x250\n" | 81 | " diag 0,%2,0x250\n" |
@@ -329,7 +330,7 @@ dasd_diag_check_device(struct dasd_device *device) | |||
329 | struct dasd_diag_private *private; | 330 | struct dasd_diag_private *private; |
330 | struct dasd_diag_characteristics *rdc_data; | 331 | struct dasd_diag_characteristics *rdc_data; |
331 | struct dasd_diag_bio bio; | 332 | struct dasd_diag_bio bio; |
332 | struct dasd_diag_cms_label *label; | 333 | struct vtoc_cms_label *label; |
333 | blocknum_t end_block; | 334 | blocknum_t end_block; |
334 | unsigned int sb, bsize; | 335 | unsigned int sb, bsize; |
335 | int rc; | 336 | int rc; |
@@ -380,7 +381,7 @@ dasd_diag_check_device(struct dasd_device *device) | |||
380 | mdsk_term_io(device); | 381 | mdsk_term_io(device); |
381 | 382 | ||
382 | /* figure out blocksize of device */ | 383 | /* figure out blocksize of device */ |
383 | label = (struct dasd_diag_cms_label *) get_zeroed_page(GFP_KERNEL); | 384 | label = (struct vtoc_cms_label *) get_zeroed_page(GFP_KERNEL); |
384 | if (label == NULL) { | 385 | if (label == NULL) { |
385 | DEV_MESSAGE(KERN_WARNING, device, "%s", | 386 | DEV_MESSAGE(KERN_WARNING, device, "%s", |
386 | "No memory to allocate initialization request"); | 387 | "No memory to allocate initialization request"); |
@@ -548,6 +549,8 @@ dasd_diag_build_cp(struct dasd_device * device, struct request *req) | |||
548 | } | 549 | } |
549 | cqr->retries = DIAG_MAX_RETRIES; | 550 | cqr->retries = DIAG_MAX_RETRIES; |
550 | cqr->buildclk = get_clock(); | 551 | cqr->buildclk = get_clock(); |
552 | if (req->flags & REQ_FAILFAST) | ||
553 | set_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags); | ||
551 | cqr->device = device; | 554 | cqr->device = device; |
552 | cqr->expires = DIAG_TIMEOUT; | 555 | cqr->expires = DIAG_TIMEOUT; |
553 | cqr->status = DASD_CQR_FILLED; | 556 | cqr->status = DASD_CQR_FILLED; |