mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-29 21:56:39 +07:00
[S390] cio: fix incorrect ccw_device_init_count
If device recognition is interrupted by a subchannel event indicating that the device is gone, ccw_device_init_count is not correctly decreased. Fix this by reporting the corresponding event to the device recognition callback via the state machine. Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
3b210e7652
commit
16d2ce271c
@ -1455,7 +1455,16 @@ static int io_subchannel_sch_event(struct subchannel *sch, int process)
|
|||||||
break;
|
break;
|
||||||
case IO_SCH_UNREG_ATTACH:
|
case IO_SCH_UNREG_ATTACH:
|
||||||
case IO_SCH_UNREG:
|
case IO_SCH_UNREG:
|
||||||
if (cdev)
|
if (!cdev)
|
||||||
|
break;
|
||||||
|
if (cdev->private->state == DEV_STATE_SENSE_ID) {
|
||||||
|
/*
|
||||||
|
* Note: delayed work triggered by this event
|
||||||
|
* and repeated calls to sch_event are synchronized
|
||||||
|
* by the above check for work_pending(cdev).
|
||||||
|
*/
|
||||||
|
dev_fsm_event(cdev, DEV_EVENT_NOTOPER);
|
||||||
|
} else
|
||||||
ccw_device_set_notoper(cdev);
|
ccw_device_set_notoper(cdev);
|
||||||
break;
|
break;
|
||||||
case IO_SCH_NOP:
|
case IO_SCH_NOP:
|
||||||
|
Loading…
Reference in New Issue
Block a user