Loading
s390/qeth: fix deadlock during failing recovery
mainline inclusion from mainline-v5.15-rc3 commit d2b59bd4 category: bugfix bugzilla: https://gitee.com/src-openeuler/kernel/issues/I9R4P3 CVE: CVE-2021-47382 Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d2b59bd4b06d84a4eadb520b0f71c62fe8ec0a62 -------------------------------- Commit 0b9902c1 ("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: b41b554c ("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> Conflicts: arch/s390/include/asm/ccwgroup.h [Fix context] Signed-off-by:
Yuan Can <yuancan@huawei.com>