linux/drivers/s390/net
Alexandra Winter d2b59bd4b0 s390/qeth: fix deadlock during failing recovery
Commit 0b9902c1fc ("s390/qeth: fix deadlock during recovery") removed
taking discipline_mutex inside qeth_do_reset(), fixing potential
deadlocks. An error path was missed though, that still takes
discipline_mutex and thus has the original deadlock potential.

Intermittent deadlocks were seen when a qeth channel path is configured
offline, causing a race between qeth_do_reset and ccwgroup_remove.
Call qeth_set_offline() directly in the qeth_do_reset() error case and
then a new variant of ccwgroup_set_offline(), without taking
discipline_mutex.

Fixes: b41b554c1e ("s390/qeth: fix locking for discipline setup / removal")
Signed-off-by: Alexandra Winter <wintera@linux.ibm.com>
Reviewed-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2021-09-21 20:02:24 -07:00
..
ctcm_dbug.c
ctcm_dbug.h
ctcm_fsms.c s390/net: replace in_irq() with in_hardirq() 2021-08-16 11:15:47 +01:00
ctcm_fsms.h s390/ctcm: remove orphaned function declarations 2020-10-02 16:22:49 -07:00
ctcm_main.c s390/ctcm: Use GFP_ATOMIC in ctcmpc_tx(). 2020-12-01 16:56:02 -08:00
ctcm_main.h s390/ctcm: Use GFP_ATOMIC in ctcmpc_tx(). 2020-12-01 16:56:02 -08:00
ctcm_mpc.c s390/net: replace in_irq() with in_hardirq() 2021-08-16 11:15:47 +01:00
ctcm_mpc.h s390/ctcm: remove orphaned function declarations 2020-10-02 16:22:49 -07:00
ctcm_sysfs.c
fsm.c
fsm.h
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/qeth: Switchdev event handler 2021-08-07 09:44:02 +01:00
lcs.c
lcs.h
Makefile
netiucv.c s390/netiuvc: get rid of forward declarations 2021-06-12 13:06:33 -07:00
qeth_core_main.c s390/qeth: fix deadlock during failing recovery 2021-09-21 20:02:24 -07:00
qeth_core_mpc.c s390/qeth: remove OSN support 2021-07-20 06:17:06 -07:00
qeth_core_mpc.h s390/qeth: clean up QETH_PROT_* naming 2021-07-20 06:17:06 -07:00
qeth_core_sys.c s390/qeth: remove OSN support 2021-07-20 06:17:06 -07:00
qeth_core.h s390/qeth: Fix deadlock in remove_discipline 2021-09-21 20:02:24 -07:00
qeth_ethtool.c ethtool: extend coalesce setting uAPI with CQE mode 2021-08-24 07:38:29 -07:00
qeth_l2_main.c s390/qeth: Fix deadlock in remove_discipline 2021-09-21 20:02:24 -07:00
qeth_l2_sys.c s390/qeth: use dev->groups for common sysfs attributes 2020-12-07 06:55:21 -08:00
qeth_l2.h s390/qeth: use dev->groups for common sysfs attributes 2020-12-07 06:55:21 -08:00
qeth_l3_main.c s390/qeth: Fix deadlock in remove_discipline 2021-09-21 20:02:24 -07:00
qeth_l3_sys.c s390/qeth: use dev->groups for common sysfs attributes 2020-12-07 06:55:21 -08:00
qeth_l3.h s390/qeth: use dev->groups for common sysfs attributes 2020-12-07 06:55:21 -08:00
smsgiucv_app.c
smsgiucv.c
smsgiucv.h