diff options
author | Paul E. McKenney <paulmck@kernel.org> | 2022-08-03 17:48:12 +0200 |
---|---|---|
committer | Paul E. McKenney <paulmck@kernel.org> | 2022-08-31 14:03:14 +0200 |
commit | 089254fd386eb6800dd7d7863f12a04ada0c35fa (patch) | |
tree | 7d21add72209e4df4a23f45d7dcdc827c2c7b92b | |
parent | rcu: Make tiny RCU support leak callbacks for debug-object errors (diff) | |
download | linux-089254fd386eb6800dd7d7863f12a04ada0c35fa.tar.xz linux-089254fd386eb6800dd7d7863f12a04ada0c35fa.zip |
rcu: Document reason for rcu_all_qs() call to preempt_disable()
Given that rcu_all_qs() is in non-preemptible kernels, why on earth should
it invoke preempt_disable()? This commit adds the reason, which is to
work nicely with debugging enabled in CONFIG_PREEMPT_COUNT=y kernels.
Reported-by: Neeraj Upadhyay <quic_neeraju@quicinc.com>
Reported-by: Boqun Feng <boqun.feng@gmail.com>
Reported-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
-rw-r--r-- | kernel/rcu/tree_plugin.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h index 4152816dd29f..c46b3c74dad1 100644 --- a/kernel/rcu/tree_plugin.h +++ b/kernel/rcu/tree_plugin.h @@ -870,7 +870,7 @@ void rcu_all_qs(void) if (!raw_cpu_read(rcu_data.rcu_urgent_qs)) return; - preempt_disable(); + preempt_disable(); // For CONFIG_PREEMPT_COUNT=y kernels /* Load rcu_urgent_qs before other flags. */ if (!smp_load_acquire(this_cpu_ptr(&rcu_data.rcu_urgent_qs))) { preempt_enable(); |