diff options
Diffstat (limited to 'drivers/s390/char/tape_std.c')
-rw-r--r-- | drivers/s390/char/tape_std.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/s390/char/tape_std.c b/drivers/s390/char/tape_std.c index 2f9fe30989a7..99cf881f41db 100644 --- a/drivers/s390/char/tape_std.c +++ b/drivers/s390/char/tape_std.c | |||
@@ -37,20 +37,19 @@ tape_std_assign_timeout(unsigned long data) | |||
37 | { | 37 | { |
38 | struct tape_request * request; | 38 | struct tape_request * request; |
39 | struct tape_device * device; | 39 | struct tape_device * device; |
40 | int rc; | ||
40 | 41 | ||
41 | request = (struct tape_request *) data; | 42 | request = (struct tape_request *) data; |
42 | if ((device = request->device) == NULL) | 43 | if ((device = request->device) == NULL) |
43 | BUG(); | 44 | BUG(); |
44 | 45 | ||
45 | spin_lock_irq(get_ccwdev_lock(device->cdev)); | 46 | DBF_EVENT(3, "%08x: Assignment timeout. Device busy.\n", |
46 | if (request->callback != NULL) { | ||
47 | DBF_EVENT(3, "%08x: Assignment timeout. Device busy.\n", | ||
48 | device->cdev_id); | 47 | device->cdev_id); |
49 | PRINT_ERR("%s: Assignment timeout. Device busy.\n", | 48 | rc = tape_cancel_io(device, request); |
50 | device->cdev->dev.bus_id); | 49 | if(rc) |
51 | ccw_device_clear(device->cdev, (long) request); | 50 | PRINT_ERR("(%s): Assign timeout: Cancel failed with rc = %i\n", |
52 | } | 51 | device->cdev->dev.bus_id, rc); |
53 | spin_unlock_irq(get_ccwdev_lock(device->cdev)); | 52 | |
54 | } | 53 | } |
55 | 54 | ||
56 | int | 55 | int |