aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio
diff options
context:
space:
mode:
authorPeter Oberparleiter <peter.oberparleiter@de.ibm.com>2009-12-07 06:51:24 -0500
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>2009-12-07 06:51:30 -0500
commit16b9a0571da4ee5cd15ca75e871722b0b5aee64d (patch)
treed831640b56cbc2da742936337175cee221cfb6f3 /drivers/s390/cio
parent1f5bd3848bfc56de4c32ef6971a6a966776204bb (diff)
[S390] cio: dont panic in non-fatal conditions
Remove the call to BUG() for situations which are unexpected but do not cause actual problems. Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio')
-rw-r--r--drivers/s390/cio/device_fsm.c25
1 files changed, 6 insertions, 19 deletions
diff --git a/drivers/s390/cio/device_fsm.c b/drivers/s390/cio/device_fsm.c
index a70c46c8b4bc..c397442ab3d8 100644
--- a/drivers/s390/cio/device_fsm.c
+++ b/drivers/s390/cio/device_fsm.c
@@ -1055,14 +1055,14 @@ void ccw_device_trigger_reprobe(struct ccw_device *cdev)
1055 ccw_device_start_id(cdev, 0); 1055 ccw_device_start_id(cdev, 0);
1056} 1056}
1057 1057
1058static void 1058static void ccw_device_disabled_irq(struct ccw_device *cdev,
1059ccw_device_offline_irq(struct ccw_device *cdev, enum dev_event dev_event) 1059 enum dev_event dev_event)
1060{ 1060{
1061 struct subchannel *sch; 1061 struct subchannel *sch;
1062 1062
1063 sch = to_subchannel(cdev->dev.parent); 1063 sch = to_subchannel(cdev->dev.parent);
1064 /* 1064 /*
1065 * An interrupt in state offline means a previous disable was not 1065 * An interrupt in a disabled state means a previous disable was not
1066 * successful - should not happen, but we try to disable again. 1066 * successful - should not happen, but we try to disable again.
1067 */ 1067 */
1068 cio_disable_subchannel(sch); 1068 cio_disable_subchannel(sch);
@@ -1125,25 +1125,12 @@ ccw_device_nop(struct ccw_device *cdev, enum dev_event dev_event)
1125} 1125}
1126 1126
1127/* 1127/*
1128 * Bug operation action.
1129 */
1130static void
1131ccw_device_bug(struct ccw_device *cdev, enum dev_event dev_event)
1132{
1133 CIO_MSG_EVENT(0, "Internal state [%i][%i] not handled for device "
1134 "0.%x.%04x\n", cdev->private->state, dev_event,
1135 cdev->private->dev_id.ssid,
1136 cdev->private->dev_id.devno);
1137 BUG();
1138}
1139
1140/*
1141 * device statemachine 1128 * device statemachine
1142 */ 1129 */
1143fsm_func_t *dev_jumptable[NR_DEV_STATES][NR_DEV_EVENTS] = { 1130fsm_func_t *dev_jumptable[NR_DEV_STATES][NR_DEV_EVENTS] = {
1144 [DEV_STATE_NOT_OPER] = { 1131 [DEV_STATE_NOT_OPER] = {
1145 [DEV_EVENT_NOTOPER] = ccw_device_nop, 1132 [DEV_EVENT_NOTOPER] = ccw_device_nop,
1146 [DEV_EVENT_INTERRUPT] = ccw_device_bug, 1133 [DEV_EVENT_INTERRUPT] = ccw_device_disabled_irq,
1147 [DEV_EVENT_TIMEOUT] = ccw_device_nop, 1134 [DEV_EVENT_TIMEOUT] = ccw_device_nop,
1148 [DEV_EVENT_VERIFY] = ccw_device_nop, 1135 [DEV_EVENT_VERIFY] = ccw_device_nop,
1149 }, 1136 },
@@ -1161,7 +1148,7 @@ fsm_func_t *dev_jumptable[NR_DEV_STATES][NR_DEV_EVENTS] = {
1161 }, 1148 },
1162 [DEV_STATE_OFFLINE] = { 1149 [DEV_STATE_OFFLINE] = {
1163 [DEV_EVENT_NOTOPER] = ccw_device_generic_notoper, 1150 [DEV_EVENT_NOTOPER] = ccw_device_generic_notoper,
1164 [DEV_EVENT_INTERRUPT] = ccw_device_offline_irq, 1151 [DEV_EVENT_INTERRUPT] = ccw_device_disabled_irq,
1165 [DEV_EVENT_TIMEOUT] = ccw_device_nop, 1152 [DEV_EVENT_TIMEOUT] = ccw_device_nop,
1166 [DEV_EVENT_VERIFY] = ccw_device_offline_verify, 1153 [DEV_EVENT_VERIFY] = ccw_device_offline_verify,
1167 }, 1154 },
@@ -1218,7 +1205,7 @@ fsm_func_t *dev_jumptable[NR_DEV_STATES][NR_DEV_EVENTS] = {
1218 [DEV_STATE_DISCONNECTED] = { 1205 [DEV_STATE_DISCONNECTED] = {
1219 [DEV_EVENT_NOTOPER] = ccw_device_nop, 1206 [DEV_EVENT_NOTOPER] = ccw_device_nop,
1220 [DEV_EVENT_INTERRUPT] = ccw_device_start_id, 1207 [DEV_EVENT_INTERRUPT] = ccw_device_start_id,
1221 [DEV_EVENT_TIMEOUT] = ccw_device_bug, 1208 [DEV_EVENT_TIMEOUT] = ccw_device_nop,
1222 [DEV_EVENT_VERIFY] = ccw_device_start_id, 1209 [DEV_EVENT_VERIFY] = ccw_device_start_id,
1223 }, 1210 },
1224 [DEV_STATE_DISCONNECTED_SENSE_ID] = { 1211 [DEV_STATE_DISCONNECTED_SENSE_ID] = {