diff options
Diffstat (limited to 'drivers/s390')
| -rw-r--r-- | drivers/s390/block/dasd.c | 5 | ||||
| -rw-r--r-- | drivers/s390/block/dasd_devmap.c | 10 | ||||
| -rw-r--r-- | drivers/s390/block/dasd_int.h | 2 | ||||
| -rw-r--r-- | drivers/s390/char/tape_core.c | 31 | ||||
| -rw-r--r-- | drivers/s390/char/vmlogrdr.c | 2 | ||||
| -rw-r--r-- | drivers/s390/cio/blacklist.c | 1 | ||||
| -rw-r--r-- | drivers/s390/cio/device_pgid.c | 12 |
7 files changed, 18 insertions, 45 deletions
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c index ac6d4d3218b3..8ba3f135da22 100644 --- a/drivers/s390/block/dasd.c +++ b/drivers/s390/block/dasd.c | |||
| @@ -925,6 +925,8 @@ static void dasd_handle_killed_request(struct ccw_device *cdev, | |||
| 925 | struct dasd_ccw_req *cqr; | 925 | struct dasd_ccw_req *cqr; |
| 926 | struct dasd_device *device; | 926 | struct dasd_device *device; |
| 927 | 927 | ||
| 928 | if (!intparm) | ||
| 929 | return; | ||
| 928 | cqr = (struct dasd_ccw_req *) intparm; | 930 | cqr = (struct dasd_ccw_req *) intparm; |
| 929 | if (cqr->status != DASD_CQR_IN_IO) { | 931 | if (cqr->status != DASD_CQR_IN_IO) { |
| 930 | MESSAGE(KERN_DEBUG, | 932 | MESSAGE(KERN_DEBUG, |
| @@ -976,17 +978,16 @@ void dasd_int_handler(struct ccw_device *cdev, unsigned long intparm, | |||
| 976 | if (IS_ERR(irb)) { | 978 | if (IS_ERR(irb)) { |
| 977 | switch (PTR_ERR(irb)) { | 979 | switch (PTR_ERR(irb)) { |
| 978 | case -EIO: | 980 | case -EIO: |
| 979 | dasd_handle_killed_request(cdev, intparm); | ||
| 980 | break; | 981 | break; |
| 981 | case -ETIMEDOUT: | 982 | case -ETIMEDOUT: |
| 982 | printk(KERN_WARNING"%s(%s): request timed out\n", | 983 | printk(KERN_WARNING"%s(%s): request timed out\n", |
| 983 | __func__, cdev->dev.bus_id); | 984 | __func__, cdev->dev.bus_id); |
| 984 | //FIXME - dasd uses own timeout interface... | ||
| 985 | break; | 985 | break; |
| 986 | default: | 986 | default: |
| 987 | printk(KERN_WARNING"%s(%s): unknown error %ld\n", | 987 | printk(KERN_WARNING"%s(%s): unknown error %ld\n", |
| 988 | __func__, cdev->dev.bus_id, PTR_ERR(irb)); | 988 | __func__, cdev->dev.bus_id, PTR_ERR(irb)); |
| 989 | } | 989 | } |
| 990 | dasd_handle_killed_request(cdev, intparm); | ||
| 990 | return; | 991 | return; |
| 991 | } | 992 | } |
| 992 | 993 | ||
diff --git a/drivers/s390/block/dasd_devmap.c b/drivers/s390/block/dasd_devmap.c index f4fb40257348..d774e79476fe 100644 --- a/drivers/s390/block/dasd_devmap.c +++ b/drivers/s390/block/dasd_devmap.c | |||
| @@ -86,10 +86,10 @@ static DEFINE_SPINLOCK(dasd_devmap_lock); | |||
| 86 | static struct list_head dasd_hashlists[256]; | 86 | static struct list_head dasd_hashlists[256]; |
| 87 | int dasd_max_devindex; | 87 | int dasd_max_devindex; |
| 88 | 88 | ||
| 89 | static struct dasd_devmap *dasd_add_busid(char *, int); | 89 | static struct dasd_devmap *dasd_add_busid(const char *, int); |
| 90 | 90 | ||
| 91 | static inline int | 91 | static inline int |
| 92 | dasd_hash_busid(char *bus_id) | 92 | dasd_hash_busid(const char *bus_id) |
| 93 | { | 93 | { |
| 94 | int hash, i; | 94 | int hash, i; |
| 95 | 95 | ||
| @@ -394,7 +394,7 @@ dasd_parse(void) | |||
| 394 | * devices. | 394 | * devices. |
| 395 | */ | 395 | */ |
| 396 | static struct dasd_devmap * | 396 | static struct dasd_devmap * |
| 397 | dasd_add_busid(char *bus_id, int features) | 397 | dasd_add_busid(const char *bus_id, int features) |
| 398 | { | 398 | { |
| 399 | struct dasd_devmap *devmap, *new, *tmp; | 399 | struct dasd_devmap *devmap, *new, *tmp; |
| 400 | int hash; | 400 | int hash; |
| @@ -430,7 +430,7 @@ dasd_add_busid(char *bus_id, int features) | |||
| 430 | * Find devmap for device with given bus_id. | 430 | * Find devmap for device with given bus_id. |
| 431 | */ | 431 | */ |
| 432 | static struct dasd_devmap * | 432 | static struct dasd_devmap * |
| 433 | dasd_find_busid(char *bus_id) | 433 | dasd_find_busid(const char *bus_id) |
| 434 | { | 434 | { |
| 435 | struct dasd_devmap *devmap, *tmp; | 435 | struct dasd_devmap *devmap, *tmp; |
| 436 | int hash; | 436 | int hash; |
| @@ -452,7 +452,7 @@ dasd_find_busid(char *bus_id) | |||
| 452 | * Check if busid has been added to the list of dasd ranges. | 452 | * Check if busid has been added to the list of dasd ranges. |
| 453 | */ | 453 | */ |
| 454 | int | 454 | int |
| 455 | dasd_busid_known(char *bus_id) | 455 | dasd_busid_known(const char *bus_id) |
| 456 | { | 456 | { |
| 457 | return IS_ERR(dasd_find_busid(bus_id)) ? -ENOENT : 0; | 457 | return IS_ERR(dasd_find_busid(bus_id)) ? -ENOENT : 0; |
| 458 | } | 458 | } |
diff --git a/drivers/s390/block/dasd_int.h b/drivers/s390/block/dasd_int.h index 6c624bf44617..fb2f931cf844 100644 --- a/drivers/s390/block/dasd_int.h +++ b/drivers/s390/block/dasd_int.h | |||
| @@ -598,7 +598,7 @@ struct dasd_device *dasd_device_from_cdev_locked(struct ccw_device *); | |||
| 598 | struct dasd_device *dasd_device_from_devindex(int); | 598 | struct dasd_device *dasd_device_from_devindex(int); |
| 599 | 599 | ||
| 600 | int dasd_parse(void); | 600 | int dasd_parse(void); |
| 601 | int dasd_busid_known(char *); | 601 | int dasd_busid_known(const char *); |
| 602 | 602 | ||
| 603 | /* externals in dasd_gendisk.c */ | 603 | /* externals in dasd_gendisk.c */ |
| 604 | int dasd_gendisk_init(void); | 604 | int dasd_gendisk_init(void); |
diff --git a/drivers/s390/char/tape_core.c b/drivers/s390/char/tape_core.c index 7ad8cf157641..76e44eb7c47f 100644 --- a/drivers/s390/char/tape_core.c +++ b/drivers/s390/char/tape_core.c | |||
| @@ -76,32 +76,9 @@ const char *tape_op_verbose[TO_SIZE] = | |||
| 76 | [TO_KEKL_QUERY] = "KLQ",[TO_RDC] = "RDC", | 76 | [TO_KEKL_QUERY] = "KLQ",[TO_RDC] = "RDC", |
| 77 | }; | 77 | }; |
| 78 | 78 | ||
| 79 | static int | 79 | static int devid_to_int(struct ccw_dev_id *dev_id) |
| 80 | busid_to_int(char *bus_id) | ||
| 81 | { | 80 | { |
| 82 | int dec; | 81 | return dev_id->devno + (dev_id->ssid << 16); |
| 83 | int d; | ||
| 84 | char * s; | ||
| 85 | |||
| 86 | for(s = bus_id, d = 0; *s != '\0' && *s != '.'; s++) | ||
| 87 | d = (d * 10) + (*s - '0'); | ||
| 88 | dec = d; | ||
| 89 | for(s++, d = 0; *s != '\0' && *s != '.'; s++) | ||
| 90 | d = (d * 10) + (*s - '0'); | ||
| 91 | dec = (dec << 8) + d; | ||
| 92 | |||
| 93 | for(s++; *s != '\0'; s++) { | ||
| 94 | if (*s >= '0' && *s <= '9') { | ||
| 95 | d = *s - '0'; | ||
| 96 | } else if (*s >= 'a' && *s <= 'f') { | ||
| 97 | d = *s - 'a' + 10; | ||
| 98 | } else { | ||
| 99 | d = *s - 'A' + 10; | ||
| 100 | } | ||
| 101 | dec = (dec << 4) + d; | ||
| 102 | } | ||
| 103 | |||
| 104 | return dec; | ||
| 105 | } | 82 | } |
| 106 | 83 | ||
| 107 | /* | 84 | /* |
| @@ -551,6 +528,7 @@ tape_generic_probe(struct ccw_device *cdev) | |||
| 551 | { | 528 | { |
| 552 | struct tape_device *device; | 529 | struct tape_device *device; |
| 553 | int ret; | 530 | int ret; |
| 531 | struct ccw_dev_id dev_id; | ||
| 554 | 532 | ||
| 555 | device = tape_alloc_device(); | 533 | device = tape_alloc_device(); |
| 556 | if (IS_ERR(device)) | 534 | if (IS_ERR(device)) |
| @@ -565,7 +543,8 @@ tape_generic_probe(struct ccw_device *cdev) | |||
| 565 | cdev->dev.driver_data = device; | 543 | cdev->dev.driver_data = device; |
| 566 | cdev->handler = __tape_do_irq; | 544 | cdev->handler = __tape_do_irq; |
| 567 | device->cdev = cdev; | 545 | device->cdev = cdev; |
| 568 | device->cdev_id = busid_to_int(cdev->dev.bus_id); | 546 | ccw_device_get_id(cdev, &dev_id); |
| 547 | device->cdev_id = devid_to_int(&dev_id); | ||
| 569 | PRINT_INFO("tape device %s found\n", cdev->dev.bus_id); | 548 | PRINT_INFO("tape device %s found\n", cdev->dev.bus_id); |
| 570 | return ret; | 549 | return ret; |
| 571 | } | 550 | } |
diff --git a/drivers/s390/char/vmlogrdr.c b/drivers/s390/char/vmlogrdr.c index d364e0bfae12..e8487347e4d4 100644 --- a/drivers/s390/char/vmlogrdr.c +++ b/drivers/s390/char/vmlogrdr.c | |||
| @@ -858,7 +858,7 @@ static int __init vmlogrdr_init(void) | |||
| 858 | for (i=0; i < MAXMINOR; ++i ) { | 858 | for (i=0; i < MAXMINOR; ++i ) { |
| 859 | sys_ser[i].buffer = (char *) get_zeroed_page(GFP_KERNEL); | 859 | sys_ser[i].buffer = (char *) get_zeroed_page(GFP_KERNEL); |
| 860 | if (!sys_ser[i].buffer) { | 860 | if (!sys_ser[i].buffer) { |
| 861 | rc = ENOMEM; | 861 | rc = -ENOMEM; |
| 862 | break; | 862 | break; |
| 863 | } | 863 | } |
| 864 | sys_ser[i].current_position = sys_ser[i].buffer; | 864 | sys_ser[i].current_position = sys_ser[i].buffer; |
diff --git a/drivers/s390/cio/blacklist.c b/drivers/s390/cio/blacklist.c index 9c21b8f43f9b..a4a5f2efea48 100644 --- a/drivers/s390/cio/blacklist.c +++ b/drivers/s390/cio/blacklist.c | |||
| @@ -19,7 +19,6 @@ | |||
| 19 | 19 | ||
| 20 | #include <asm/cio.h> | 20 | #include <asm/cio.h> |
| 21 | #include <asm/uaccess.h> | 21 | #include <asm/uaccess.h> |
| 22 | #include <asm/cio.h> | ||
| 23 | 22 | ||
| 24 | #include "blacklist.h" | 23 | #include "blacklist.h" |
| 25 | #include "cio.h" | 24 | #include "cio.h" |
diff --git a/drivers/s390/cio/device_pgid.c b/drivers/s390/cio/device_pgid.c index ba559053402e..5cf7be008e98 100644 --- a/drivers/s390/cio/device_pgid.c +++ b/drivers/s390/cio/device_pgid.c | |||
| @@ -243,16 +243,10 @@ __ccw_device_do_pgid(struct ccw_device *cdev, __u8 func) | |||
| 243 | /* Setup sense path group id channel program. */ | 243 | /* Setup sense path group id channel program. */ |
| 244 | cdev->private->pgid[0].inf.fc = func; | 244 | cdev->private->pgid[0].inf.fc = func; |
| 245 | ccw = cdev->private->iccws; | 245 | ccw = cdev->private->iccws; |
| 246 | if (!cdev->private->flags.pgid_single) { | 246 | if (cdev->private->flags.pgid_single) |
| 247 | cdev->private->pgid[0].inf.fc |= SPID_FUNC_MULTI_PATH; | ||
| 248 | ccw->cmd_code = CCW_CMD_SUSPEND_RECONN; | ||
| 249 | ccw->cda = 0; | ||
| 250 | ccw->count = 0; | ||
| 251 | ccw->flags = CCW_FLAG_SLI | CCW_FLAG_CC; | ||
| 252 | ccw++; | ||
| 253 | } else | ||
| 254 | cdev->private->pgid[0].inf.fc |= SPID_FUNC_SINGLE_PATH; | 247 | cdev->private->pgid[0].inf.fc |= SPID_FUNC_SINGLE_PATH; |
| 255 | 248 | else | |
| 249 | cdev->private->pgid[0].inf.fc |= SPID_FUNC_MULTI_PATH; | ||
| 256 | ccw->cmd_code = CCW_CMD_SET_PGID; | 250 | ccw->cmd_code = CCW_CMD_SET_PGID; |
| 257 | ccw->cda = (__u32) __pa (&cdev->private->pgid[0]); | 251 | ccw->cda = (__u32) __pa (&cdev->private->pgid[0]); |
| 258 | ccw->count = sizeof (struct pgid); | 252 | ccw->count = sizeof (struct pgid); |
