aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio/device.c
diff options
context:
space:
mode:
authorSebastian Ott <sebott@linux.vnet.ibm.com>2009-03-31 13:16:05 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2009-03-31 13:17:06 -0400
commit47593bfa1056d306fde067b28dd8617009be4121 (patch)
tree3bbad2e48bb773ac4b6f8e0efb4214c75cede7f5 /drivers/s390/cio/device.c
parentc4621a62649a56f155a96dfc5de479be226f0768 (diff)
[S390] cio: introduce notifier for boxed state
If a ccw device did not respond in time during internal io, we set it into boxed state. With this patch we have the following behaviour: * the ccw driver will get a notification if the device was online and goes into the boxed state * if the device was disconnected and got boxed nothing special is to be done (it will be handled in reprobing later) * if the device got boxed while initial sensing it will be unregistered Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio/device.c')
-rw-r--r--drivers/s390/cio/device.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c
index cdbf664ed446..868f8c6b053a 100644
--- a/drivers/s390/cio/device.c
+++ b/drivers/s390/cio/device.c
@@ -1035,6 +1035,8 @@ io_subchannel_recog_done(struct ccw_device *cdev)
1035 return; 1035 return;
1036 } 1036 }
1037 switch (cdev->private->state) { 1037 switch (cdev->private->state) {
1038 case DEV_STATE_BOXED:
1039 /* Device did not respond in time. */
1038 case DEV_STATE_NOT_OPER: 1040 case DEV_STATE_NOT_OPER:
1039 cdev->private->flags.recog_done = 1; 1041 cdev->private->flags.recog_done = 1;
1040 /* Remove device found not operational. */ 1042 /* Remove device found not operational. */
@@ -1044,8 +1046,6 @@ io_subchannel_recog_done(struct ccw_device *cdev)
1044 if (atomic_dec_and_test(&ccw_device_init_count)) 1046 if (atomic_dec_and_test(&ccw_device_init_count))
1045 wake_up(&ccw_device_init_wq); 1047 wake_up(&ccw_device_init_wq);
1046 break; 1048 break;
1047 case DEV_STATE_BOXED:
1048 /* Device did not respond in time. */
1049 case DEV_STATE_OFFLINE: 1049 case DEV_STATE_OFFLINE:
1050 /* 1050 /*
1051 * We can't register the device in interrupt context so 1051 * We can't register the device in interrupt context so