[S390] cio: fix ineffective verify event
Path verification events occurring for offline devices are currently ignored. As a result, offline devices are not removed, even though they might no longer be accessible (for example because the last path to the device was varied offline). Fix this by scheduling a status evaluation for the affected subchannel when a path verification event occurs. Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
committed by
Martin Schwidefsky
parent
0d03d59d9b
commit
1f1148c88a
@@ -730,6 +730,17 @@ static void ccw_device_generic_notoper(struct ccw_device *cdev,
|
|||||||
css_schedule_eval(sch->schid);
|
css_schedule_eval(sch->schid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Handle path verification event in offline state.
|
||||||
|
*/
|
||||||
|
static void ccw_device_offline_verify(struct ccw_device *cdev,
|
||||||
|
enum dev_event dev_event)
|
||||||
|
{
|
||||||
|
struct subchannel *sch = to_subchannel(cdev->dev.parent);
|
||||||
|
|
||||||
|
css_schedule_eval(sch->schid);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Handle path verification event.
|
* Handle path verification event.
|
||||||
*/
|
*/
|
||||||
@@ -1149,7 +1160,7 @@ fsm_func_t *dev_jumptable[NR_DEV_STATES][NR_DEV_EVENTS] = {
|
|||||||
[DEV_EVENT_NOTOPER] = ccw_device_generic_notoper,
|
[DEV_EVENT_NOTOPER] = ccw_device_generic_notoper,
|
||||||
[DEV_EVENT_INTERRUPT] = ccw_device_offline_irq,
|
[DEV_EVENT_INTERRUPT] = ccw_device_offline_irq,
|
||||||
[DEV_EVENT_TIMEOUT] = ccw_device_nop,
|
[DEV_EVENT_TIMEOUT] = ccw_device_nop,
|
||||||
[DEV_EVENT_VERIFY] = ccw_device_nop,
|
[DEV_EVENT_VERIFY] = ccw_device_offline_verify,
|
||||||
},
|
},
|
||||||
[DEV_STATE_VERIFY] = {
|
[DEV_STATE_VERIFY] = {
|
||||||
[DEV_EVENT_NOTOPER] = ccw_device_generic_notoper,
|
[DEV_EVENT_NOTOPER] = ccw_device_generic_notoper,
|
||||||
|
Reference in New Issue
Block a user