summaryrefslogtreecommitdiff
path: root/drivers/s390
diff options
context:
space:
mode:
authorStefan Haberland <stefan.haberland@de.ibm.com>2011-08-03 14:44:23 (GMT)
committerHeiko Carstens <heiko.carstens@de.ibm.com>2011-08-03 14:44:19 (GMT)
commit34cd551a31cd4e35cd3f9ed9f13bb46b4ee98508 (patch)
tree7dbea7ccd0d77864f75e85b353450fb8bd54f2c2 /drivers/s390
parent9dc7356ee1266d6a69fc80f28d006f71c20bf172 (diff)
downloadlinux-34cd551a31cd4e35cd3f9ed9f13bb46b4ee98508.tar.xz
[S390] dasd: check if raw track access is supported
To use raw track access some special storage server commands are needed. Older storage hardware may not support these commands. So check if raw track access is possible while setting the DASD online. Signed-off-by: Stefan Haberland <stefan.haberland@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Diffstat (limited to 'drivers/s390')
-rw-r--r--drivers/s390/block/dasd_eckd.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c
index 30fb979..6e835c9 100644
--- a/drivers/s390/block/dasd_eckd.c
+++ b/drivers/s390/block/dasd_eckd.c
@@ -1461,6 +1461,15 @@ dasd_eckd_check_characteristics(struct dasd_device *device)
"Read device characteristic failed, rc=%d", rc);
goto out_err3;
}
+
+ if ((device->features & DASD_FEATURE_USERAW) &&
+ !(private->rdc_data.facilities.RT_in_LR)) {
+ dev_err(&device->cdev->dev, "The storage server does not "
+ "support raw-track access\n");
+ rc = -EINVAL;
+ goto out_err3;
+ }
+
/* find the valid cylinder size */
if (private->rdc_data.no_cyl == LV_COMPAT_CYL &&
private->rdc_data.long_no_cyl)