summaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio/qdio_main.c
diff options
context:
space:
mode:
authorHeinz Graalfs <graalfs@linux.vnet.ibm.com>2014-03-05 15:23:54 +0100
committerCornelia Huck <cornelia.huck@de.ibm.com>2014-03-06 10:22:40 +0100
commit79629b208fc0484ee448c4acfa3762f0350e97ce (patch)
treec9a706ec6d539aad6f1aacd4201577ddcc2a8d24 /drivers/s390/cio/qdio_main.c
parentvirtio-ccw: virtio-ccw adapter interrupt support. (diff)
downloadlinux-79629b208fc0484ee448c4acfa3762f0350e97ce.tar.xz
linux-79629b208fc0484ee448c4acfa3762f0350e97ce.zip
virtio_ccw: fix hang in set offline processing
During set offline processing virtio_grab_drvdata() incorrectly calls dev_set_drvdata() to remove the virtio_ccw_device from the parent ccw_device's driver data. This is wrong and ends up in a hang during virtio_ccw_reset(), as the interrupt handler still has need of the virtio_ccw_device. A new field 'going_away' is introduced in struct virtio_ccw_device to control the usage of the ccw_device's driver data pointer in virtio_grab_drvdata(). Signed-off-by: Heinz Graalfs <graalfs@linux.vnet.ibm.com> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio/qdio_main.c')
0 files changed, 0 insertions, 0 deletions