Skip to content

Commit

Permalink
[S390] dasd PAV enabling.
Browse files Browse the repository at this point in the history
The subsystem check in the PAV code is incorrect, it enables PAV
per device instead of per subsystem.

Signed-off-by: Horst Hummel <horst.hummel@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
  • Loading branch information
Horst Hummel authored and Martin Schwidefsky committed Aug 24, 2006
1 parent ef7d1b2 commit 8e79a44
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 11 deletions.
8 changes: 4 additions & 4 deletions drivers/s390/block/dasd_devmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -904,14 +904,14 @@ dasd_set_uid(struct ccw_device *cdev, struct dasd_uid *uid)
return -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;
Expand Down
14 changes: 7 additions & 7 deletions drivers/s390/block/dasd_eckd.c
Original file line number Diff line number Diff line change
Expand Up @@ -607,7 +607,7 @@ dasd_eckd_psf_ssc(struct dasd_device *device)
* 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;

Expand All @@ -616,11 +616,11 @@ dasd_eckd_validate_server(struct dasd_device *device)
return 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);
}
Expand Down Expand Up @@ -666,7 +666,7 @@ dasd_eckd_check_characteristics(struct dasd_device *device)
return 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;

Expand Down

0 comments on commit 8e79a44

Please sign in to comment.