diff --git a/patches/misc/misc.scc b/patches/misc/misc.scc index ff54bbaf3e21b8b34beaad23d55465e5c3238242..1af3f61fc7e7175d61e20c376b9ebb34d9334aeb 100644 --- a/patches/misc/misc.scc +++ b/patches/misc/misc.scc @@ -10,5 +10,4 @@ patch arm64-perf-fix-backtrace-for-AAPCS-with-FP-enabled.patch patch defconfigs-drop-obselete-options.patch patch arm64-perf-Fix-wrong-cast-that-may-cause-wrong-trunc.patch patch net-dccp-make-it-depend-on-CONFIG_BROKEN-CVE-2020-16.patch -patch rcu-Fix-stall-warning-deadlock-due-to-non-release-of.patch patch iwlwifi-select-MAC80211_LEDS-conditionally.patch diff --git a/patches/misc/rcu-Fix-stall-warning-deadlock-due-to-non-release-of.patch b/patches/misc/rcu-Fix-stall-warning-deadlock-due-to-non-release-of.patch deleted file mode 100644 index 4ac5010c93a43c433dc9d9d4e212539ad831b962..0000000000000000000000000000000000000000 --- a/patches/misc/rcu-Fix-stall-warning-deadlock-due-to-non-release-of.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 002febe8b5b71ff68e2c3c86c692e5360d582fec Mon Sep 17 00:00:00 2001 -From: Yanfei Xu <yanfei.xu@windriver.com> -Date: Sun, 16 May 2021 17:50:10 +0800 -Subject: [PATCH] rcu: Fix stall-warning deadlock due to non-release of - rcu_node ->lock - -If rcu_print_task_stall() is invoked on an rcu_node structure that does -not contain any tasks blocking the current grace period, it takes an -early exit that fails to release that rcu_node structure's lock. This -results in a self-deadlock, which is detected by lockdep. - -To reproduce this bug: - -tools/testing/selftests/rcutorture/bin/kvm.sh --allcpus --duration 3 --trust-make --configs "TREE03" --kconfig "CONFIG_PROVE_LOCKING=y" --bootargs "rcutorture.stall_cpu=30 rcutorture.stall_cpu_block=1 rcutorture.fwd_progress=0 rcutorture.test_boost=0" - -This will also result in other complaints, including RCU's scheduler -hook complaining about blocking rather than preemption and an rcutorture -writer stall. - -Only a partial RCU CPU stall warning message will be printed because of -the self-deadlock. - -This commit therefore releases the lock on the rcu_print_task_stall() -function's early exit path. - -Fixes: c583bcb8f5ed ("rcu: Don't invoke try_invoke_on_locked_down_task() with irqs disabled") -Signed-off-by: Yanfei Xu <yanfei.xu@windriver.com> -Signed-off-by: Paul E. McKenney <paulmck@kernel.org> -Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> ---- - kernel/rcu/tree_stall.h | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/kernel/rcu/tree_stall.h b/kernel/rcu/tree_stall.h -index 59b95cc5cbdf..f5ba9a46d9a3 100644 ---- a/kernel/rcu/tree_stall.h -+++ b/kernel/rcu/tree_stall.h -@@ -267,8 +267,10 @@ static int rcu_print_task_stall(struct rcu_node *rnp, unsigned long flags) - struct task_struct *ts[8]; - - lockdep_assert_irqs_disabled(); -- if (!rcu_preempt_blocked_readers_cgp(rnp)) -+ if (!rcu_preempt_blocked_readers_cgp(rnp)) { -+ raw_spin_unlock_irqrestore_rcu_node(rnp, flags); - return 0; -+ } - pr_err("\tTasks blocked on level-%d rcu_node (CPUs %d-%d):", - rnp->level, rnp->grplo, rnp->grphi); - t = list_entry(rnp->gp_tasks->prev, --- -2.19.1 -