diff options
Diffstat (limited to 'drivers/s390/block/dasd_eckd.c')
-rw-r--r-- | drivers/s390/block/dasd_eckd.c | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c index 2e655f466743..b7a7fac3f7c3 100644 --- a/drivers/s390/block/dasd_eckd.c +++ b/drivers/s390/block/dasd_eckd.c | |||
@@ -65,16 +65,16 @@ struct dasd_eckd_private { | |||
65 | /* The ccw bus type uses this table to find devices that it sends to | 65 | /* The ccw bus type uses this table to find devices that it sends to |
66 | * dasd_eckd_probe */ | 66 | * dasd_eckd_probe */ |
67 | static struct ccw_device_id dasd_eckd_ids[] = { | 67 | static struct ccw_device_id dasd_eckd_ids[] = { |
68 | { CCW_DEVICE_DEVTYPE (0x3990, 0, 0x3390, 0), driver_info: 0x1}, | 68 | { CCW_DEVICE_DEVTYPE (0x3990, 0, 0x3390, 0), .driver_info = 0x1}, |
69 | { CCW_DEVICE_DEVTYPE (0x2105, 0, 0x3390, 0), driver_info: 0x2}, | 69 | { CCW_DEVICE_DEVTYPE (0x2105, 0, 0x3390, 0), .driver_info = 0x2}, |
70 | { CCW_DEVICE_DEVTYPE (0x3880, 0, 0x3390, 0), driver_info: 0x3}, | 70 | { CCW_DEVICE_DEVTYPE (0x3880, 0, 0x3390, 0), .driver_info = 0x3}, |
71 | { CCW_DEVICE_DEVTYPE (0x3990, 0, 0x3380, 0), driver_info: 0x4}, | 71 | { CCW_DEVICE_DEVTYPE (0x3990, 0, 0x3380, 0), .driver_info = 0x4}, |
72 | { CCW_DEVICE_DEVTYPE (0x2105, 0, 0x3380, 0), driver_info: 0x5}, | 72 | { CCW_DEVICE_DEVTYPE (0x2105, 0, 0x3380, 0), .driver_info = 0x5}, |
73 | { CCW_DEVICE_DEVTYPE (0x9343, 0, 0x9345, 0), driver_info: 0x6}, | 73 | { CCW_DEVICE_DEVTYPE (0x9343, 0, 0x9345, 0), .driver_info = 0x6}, |
74 | { CCW_DEVICE_DEVTYPE (0x2107, 0, 0x3390, 0), driver_info: 0x7}, | 74 | { CCW_DEVICE_DEVTYPE (0x2107, 0, 0x3390, 0), .driver_info = 0x7}, |
75 | { CCW_DEVICE_DEVTYPE (0x2107, 0, 0x3380, 0), driver_info: 0x8}, | 75 | { CCW_DEVICE_DEVTYPE (0x2107, 0, 0x3380, 0), .driver_info = 0x8}, |
76 | { CCW_DEVICE_DEVTYPE (0x1750, 0, 0x3390, 0), driver_info: 0x9}, | 76 | { CCW_DEVICE_DEVTYPE (0x1750, 0, 0x3390, 0), .driver_info = 0x9}, |
77 | { CCW_DEVICE_DEVTYPE (0x1750, 0, 0x3380, 0), driver_info: 0xa}, | 77 | { CCW_DEVICE_DEVTYPE (0x1750, 0, 0x3380, 0), .driver_info = 0xa}, |
78 | { /* end of list */ }, | 78 | { /* end of list */ }, |
79 | }; | 79 | }; |
80 | 80 | ||
@@ -468,11 +468,11 @@ dasd_eckd_generate_uid(struct dasd_device *device, struct dasd_uid *uid) | |||
468 | return -ENODEV; | 468 | return -ENODEV; |
469 | 469 | ||
470 | memset(uid, 0, sizeof(struct dasd_uid)); | 470 | memset(uid, 0, sizeof(struct dasd_uid)); |
471 | strncpy(uid->vendor, confdata->ned1.HDA_manufacturer, | 471 | memcpy(uid->vendor, confdata->ned1.HDA_manufacturer, |
472 | sizeof(uid->vendor) - 1); | 472 | sizeof(uid->vendor) - 1); |
473 | EBCASC(uid->vendor, sizeof(uid->vendor) - 1); | 473 | EBCASC(uid->vendor, sizeof(uid->vendor) - 1); |
474 | strncpy(uid->serial, confdata->ned1.HDA_location, | 474 | memcpy(uid->serial, confdata->ned1.HDA_location, |
475 | sizeof(uid->serial) - 1); | 475 | sizeof(uid->serial) - 1); |
476 | EBCASC(uid->serial, sizeof(uid->serial) - 1); | 476 | EBCASC(uid->serial, sizeof(uid->serial) - 1); |
477 | uid->ssid = confdata->neq.subsystemID; | 477 | uid->ssid = confdata->neq.subsystemID; |
478 | if (confdata->ned2.sneq.flags == 0x40) { | 478 | if (confdata->ned2.sneq.flags == 0x40) { |
@@ -607,7 +607,7 @@ dasd_eckd_psf_ssc(struct dasd_device *device) | |||
607 | * Valide storage server of current device. | 607 | * Valide storage server of current device. |
608 | */ | 608 | */ |
609 | static int | 609 | static int |
610 | dasd_eckd_validate_server(struct dasd_device *device) | 610 | dasd_eckd_validate_server(struct dasd_device *device, struct dasd_uid *uid) |
611 | { | 611 | { |
612 | int rc; | 612 | int rc; |
613 | 613 | ||
@@ -616,11 +616,11 @@ dasd_eckd_validate_server(struct dasd_device *device) | |||
616 | return 0; | 616 | return 0; |
617 | 617 | ||
618 | rc = dasd_eckd_psf_ssc(device); | 618 | rc = dasd_eckd_psf_ssc(device); |
619 | if (rc) | 619 | /* may be requested feature is not available on server, |
620 | /* may be requested feature is not available on server, | 620 | * therefore just report error and go ahead */ |
621 | * therefore just report error and go ahead */ | 621 | DEV_MESSAGE(KERN_INFO, device, |
622 | DEV_MESSAGE(KERN_INFO, device, | 622 | "PSF-SSC on storage subsystem %s.%s.%04x returned rc=%d", |
623 | "Perform Subsystem Function returned rc=%d", rc); | 623 | uid->vendor, uid->serial, uid->ssid, rc); |
624 | /* RE-Read Configuration Data */ | 624 | /* RE-Read Configuration Data */ |
625 | return dasd_eckd_read_conf(device); | 625 | return dasd_eckd_read_conf(device); |
626 | } | 626 | } |
@@ -666,7 +666,7 @@ dasd_eckd_check_characteristics(struct dasd_device *device) | |||
666 | return rc; | 666 | return rc; |
667 | rc = dasd_set_uid(device->cdev, &uid); | 667 | rc = dasd_set_uid(device->cdev, &uid); |
668 | if (rc == 1) /* new server found */ | 668 | if (rc == 1) /* new server found */ |
669 | rc = dasd_eckd_validate_server(device); | 669 | rc = dasd_eckd_validate_server(device, &uid); |
670 | if (rc) | 670 | if (rc) |
671 | return rc; | 671 | return rc; |
672 | 672 | ||