linux/drivers/s390
Julian Wiedmann 8908f36d20 s390/qeth: fix af_iucv notification race
The two expected notification sequences are
1. TX_NOTIFY_PENDING with a subsequent TX_NOTIFY_DELAYED_*, when
   our TX completion code first observed the pending TX and the QAOB
   then completes at a later time; or
2. TX_NOTIFY_OK, when qeth_qdio_handle_aob() picked up the QAOB
   completion before our TX completion code even noticed that the TX
   was pending.

But as qeth_iqd_tx_complete() and qeth_qdio_handle_aob() can run
concurrently, we may end up with a race that results in a sequence of
TX_NOTIFY_DELAYED_* followed by TX_NOTIFY_PENDING. Which would confuse
the af_iucv code in its tracking of pending transmits.

Rework the notification code, so that qeth_qdio_handle_aob() defers its
notification if the TX completion code is still active.

Fixes: b333293058 ("qeth: add support for af_iucv HiperSockets transport")
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2020-11-20 18:59:48 -08:00
..
block block-5.10-2020-10-12 2020-10-13 12:12:44 -07:00
char s390 updates for the 5.10 merge window 2020-10-16 12:36:38 -07:00
cio s390 updates for the 5.10 merge window 2020-10-16 12:36:38 -07:00
crypto s390/pkey: fix paes selftest failure with paes and pkey static build 2020-11-03 15:12:16 +01:00
net s390/qeth: fix af_iucv notification race 2020-11-20 18:59:48 -08:00
scsi s390 updates for the 5.10 merge window 2020-10-16 12:36:38 -07:00
virtio s390/virtio: remove unused pm callbacks 2020-06-16 13:44:04 +02:00
Makefile s390: remove pointless drivers-y in drivers/s390/Makefile 2019-09-16 13:21:51 +02:00