linux/drivers/s390
Julian Wiedmann 4bdd0b2626 s390/qeth: conclude all event processing before offlining a card
commit c0a2e4d10d upstream.

Work for Bridgeport events is currently placed on a driver-wide
workqueue. If the card is removed and freed while any such work is still
active, this causes a use-after-free.
So put the events on a per-card queue, where we can control their
lifetime. As we also don't want stale events to last beyond an
offline & online cycle, flush this queue when setting the card offline.

Fixes: b4d72c08b3 ("qeth: bridgeport support - basic control")
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
[bwh: Backported to 3.16:
 - Add gdev parameter to qeth_alloc_card(), as done upstream by commit
   121ca39aa5 "s390/qeth: uninstall IRQ handler on device removal"
 - Adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2019-05-02 21:41:38 +01:00
..
block s390/dasd: fix using offset into zero size array error 2019-05-02 21:41:31 +01:00
char s390/smp: fix CPU hotplug deadlock with CPU rescan 2019-05-02 21:41:20 +01:00
cio s390/qdio: reset old sbal_state flags 2018-12-16 22:08:04 +00:00
crypto crypto: prefix module autoloading with "crypto-" 2015-02-04 10:57:48 +00:00
kvm virtio/s390: fix race in ccw_io_helper() 2019-02-11 17:54:22 +00:00
net s390/qeth: conclude all event processing before offlining a card 2019-05-02 21:41:38 +01:00
scsi scsi: zfcp: fix posting too many status read buffers leading to adapter shutdown 2019-04-04 16:13:48 +01:00
Makefile [S390] split/move machine check handler code 2009-03-26 15:24:10 +01:00