s390: dasd PAV enabling.
Subsystems (2)
PATCH 1/1 s390: dasd PAV enabling.
From: Horst Hummel <[email protected]>
[S390] dasd PAV enabling.
The subsystem check in the PAV code is incorrect, it enables PAV per device instead of per subsystem.
Signed-off-by Horst Hummel <[email protected]>
Signed-off-by Martin Schwidefsky <[email protected]>
---
drivers/s390/block/dasd_devmap.c | 8 ++++---- drivers/s390/block/dasd_eckd.c | 14 +++++++------- 2 files changed, 11 insertions(+), 11 deletions(-)
drivers/s390/block/dasd_devmap.c +4 -4
@@ -54,11 +54,11 @@ struct dasd_devmap {*/ struct dasd_server_ssid_map {struct list_head list; -struct server_id { +struct system_id {char vendor[4 ];char serial[15 ]; +__u16 ssid; } sid; -__u16 ssid; };static struct list_head dasd_server_ssid_list;
@@ -904,14 +904,14 @@ dasd_set_uid(struct ccw_device *cdev, streturn -ENOMEM ;strncpy (srv->sid.vendor, uid->vendor,sizeof (srv->sid.vendor) -1 );strncpy (srv->sid.serial, uid->serial,sizeof (srv->sid.serial) -1 ); - srv->ssid = uid->ssid; + srv->sid.ssid = uid->ssid;/* server is already contained ? */ spin_lock (&dasd_devmap_lock); devmap->uid = *uid;list_for_each_entry (tmp, &dasd_server_ssid_list, list) {if (!memcmp (&srv->sid, &tmp->sid, -sizeof (struct dasd_server_ssid_map ))) { +sizeof (struct system_id ))) {kfree (srv); srv =NULL ;break ;
drivers/s390/block/dasd_eckd.c +7 -7
@@ -607,7 +607,7 @@ dasd_eckd_psf_ssc(struct dasd_device *de* Valide storage server of current device. */ static int -dasd_eckd_validate_server (struct dasd_device *device) +dasd_eckd_validate_server (struct dasd_device *device,struct dasd_uid *uid) {int rc;
@@ -616,11 +616,11 @@ dasd_eckd_validate_server(struct dasd_dereturn 0 ; rc =dasd_eckd_psf_ssc (device); -if (rc) -/* may be requested feature is not available on server, -* therefore just report error and go ahead */ -DEV_MESSAGE (KERN_INFO , device, -"Perform Subsystem Function returned rc=%d" , rc); +/* may be requested feature is not available on server, +* therefore just report error and go ahead */ +DEV_MESSAGE (KERN_INFO , device, +"PSF-SSC on storage subsystem %s.%s.%04x returned rc=%d" , + uid->vendor, uid->serial, uid->ssid, rc);/* RE-Read Configuration Data */ return dasd_eckd_read_conf (device); }
@@ -666,7 +666,7 @@ dasd_eckd_check_characteristics(struct dreturn rc; rc =dasd_set_uid (device->cdev, &uid);if (rc ==1 )/* new server found */ - rc =dasd_eckd_validate_server (device); + rc =dasd_eckd_validate_server (device, &uid);if (rc)return rc;