OpenCloudOS-Kernel/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
..
Kconfig s390/qeth: Switchdev event handler 2021-08-07 09:44:02 +01:00
Makefile s390/qeth: move ethtool code into its own file 2019-02-15 20:35:29 -08: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 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
ism.h net/smc: introduce System Enterprise ID (SEID) 2020-09-28 15:19:02 -07:00
ism_drv.c s390/ism: fix incorrect system EID 2020-10-26 16:29:14 -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
netiucv.c s390/netiuvc: get rid of forward declarations 2021-06-12 13:06:33 -07:00
qeth_core.h s390/qeth: Fix deadlock in remove_discipline 2021-09-21 20:02:24 -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_ethtool.c ethtool: extend coalesce setting uAPI with CQE mode 2021-08-24 07:38:29 -07:00
qeth_l2.h s390/qeth: use dev->groups for common sysfs attributes 2020-12-07 06:55:21 -08: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_l3.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
smsgiucv.c s390/net: remove pm support from iucv drivers 2020-05-19 12:48:39 -07:00
smsgiucv.h
smsgiucv_app.c