aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio/device.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/cio/device.c')
-rw-r--r--drivers/s390/cio/device.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c
index 2ff8a22d4257..e8391b89eff4 100644
--- a/drivers/s390/cio/device.c
+++ b/drivers/s390/cio/device.c
@@ -1455,7 +1455,16 @@ static int io_subchannel_sch_event(struct subchannel *sch, int process)
1455 break; 1455 break;
1456 case IO_SCH_UNREG_ATTACH: 1456 case IO_SCH_UNREG_ATTACH:
1457 case IO_SCH_UNREG: 1457 case IO_SCH_UNREG:
1458 if (cdev) 1458 if (!cdev)
1459 break;
1460 if (cdev->private->state == DEV_STATE_SENSE_ID) {
1461 /*
1462 * Note: delayed work triggered by this event
1463 * and repeated calls to sch_event are synchronized
1464 * by the above check for work_pending(cdev).
1465 */
1466 dev_fsm_event(cdev, DEV_EVENT_NOTOPER);
1467 } else
1459 ccw_device_set_notoper(cdev); 1468 ccw_device_set_notoper(cdev);
1460 break; 1469 break;
1461 case IO_SCH_NOP: 1470 case IO_SCH_NOP: