linux_dsm_epyc7002/drivers/s390/net
Julian Wiedmann 7ed10e16e5 s390/qeth: fix tear down of async TX buffers
When qeth_iqd_tx_complete() detects that a TX buffer requires additional
async completion via QAOB, it might fail to replace the queue entry's
metadata (and ends up triggering recovery).

Assume now that the device gets torn down, overruling the recovery.
If the QAOB notification then arrives before the tear down has
sufficiently progressed, the buffer state is changed to
QETH_QDIO_BUF_HANDLED_DELAYED by qeth_qdio_handle_aob().

The tear down code calls qeth_drain_output_queue(), where
qeth_cleanup_handled_pending() will then attempt to replace such a
buffer _again_. If it succeeds this time, the buffer ends up dangling in
its replacement's ->next_pending list ... where it will never be freed,
since there's no further call to qeth_cleanup_handled_pending().

But the second attempt isn't actually needed, we can simply leave the
buffer on the queue and re-use it after a potential recovery has
completed. The qeth_clear_output_buffer() in qeth_drain_output_queue()
will ensure that it's in a clean state again.

Fixes: 72861ae792 ("qeth: recovery through asynchronous delivery")
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
..
ctcm_dbug.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ctcm_dbug.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ctcm_fsms.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
ctcm_fsms.h s390/ctcm: remove orphaned function declarations 2020-10-02 16:22:49 -07:00
ctcm_main.c s390/net: remove pm ops from ccwgroup drivers 2020-05-19 12:48:39 -07:00
ctcm_main.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ctcm_mpc.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
ctcm_mpc.h s390/ctcm: remove orphaned function declarations 2020-10-02 16:22:49 -07:00
ctcm_sysfs.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fsm.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2017-11-30 08:13:36 -08:00
fsm.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ism_drv.c s390/ism: fix incorrect system EID 2020-10-26 16:29:14 -07:00
ism.h net/smc: introduce System Enterprise ID (SEID) 2020-09-28 15:19:02 -07:00
Kconfig s390/net: add SMC config as one of the defaults of CCWGROUP 2020-09-10 15:24:26 -07:00
lcs.c s390/net: remove pm ops from ccwgroup drivers 2020-05-19 12:48:39 -07:00
lcs.h net: convert lcs_reply.refcnt from atomic_t to refcount_t 2017-12-20 15:23:44 -05:00
Makefile s390/qeth: move ethtool code into its own file 2019-02-15 20:35:29 -08:00
netiucv.c s390/net: remove pm support from iucv drivers 2020-05-19 12:48:39 -07:00
qeth_core_main.c s390/qeth: fix tear down of async TX buffers 2020-11-20 18:59:48 -08:00
qeth_core_mpc.c s390/qeth: constify the MPC initialization data 2020-07-14 14:53:45 -07:00
qeth_core_mpc.h s390/qeth: unify structs for bridge port state 2020-08-27 07:42:03 -07:00
qeth_core_sys.c s390/qeth: use netdev_name() 2020-10-02 16:22:49 -07:00
qeth_core.h s390/qeth: fix af_iucv notification race 2020-11-20 18:59:48 -08:00
qeth_ethtool.c s390/qeth: allow configuration of TX queues for OSA devices 2020-10-02 16:22:49 -07:00
qeth_l2_main.c s390/qeth: Remove pnso workaround 2020-11-20 18:59:47 -08:00
qeth_l2_sys.c s390/qeth: Reset address notification in case of buffer overflow 2020-09-15 13:21:47 -07:00
qeth_l2.h s390/qeth: remove forward declarations in L2 code 2020-09-23 12:07:54 -07:00
qeth_l3_main.c s390/qeth: static checker cleanups 2020-10-02 16:22:49 -07:00
qeth_l3_sys.c s390/qeth: static checker cleanups 2020-10-02 16:22:49 -07:00
qeth_l3.h s390/qeth: replace deprecated simple_stroul() 2020-09-23 12:07:54 -07:00
smsgiucv_app.c s390: net: add SPDX identifiers to the remaining files 2017-11-24 14:28:43 +01:00
smsgiucv.c s390/net: remove pm support from iucv drivers 2020-05-19 12:48:39 -07:00
smsgiucv.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00