Description
In the Linux kernel, the following vulnerability has been resolved: rcu: Fix __this_cpu_read() lockdep warning in rcu_force_quiescent_state() Running rcutorture with non-zero fqs_duration module parameter in a kernel built with CONFIG_PREEMPTION=y results in the following splat: BUG: using __this_cpu_read() in preemptible [00000000] code: rcu_torture_fqs/398 caller is __this_cpu_preempt_check+0x13/0x20 CPU: 3 PID: 398 Comm: rcu_torture_fqs Not tainted 6.0.0-rc1-yoctodev-standard+ Call Trace: <TASK> dump_stack_lvl+0x5b/0x86 dump_stack+0x10/0x16 check_preemption_disabled+0xe5/0xf0 __this_cpu_preempt_check+0x13/0x20 rcu_force_quiescent_state.part.0+0x1c/0x170 rcu_force_quiescent_state+0x1e/0x30 rcu_torture_fqs+0xca/0x160 ? rcu_torture_boost+0x430/0x430 kthread+0x192/0x1d0 ? kthread_complete_and_exit+0x30/0x30 ret_from_fork+0x22/0x30 </TASK> The problem is that rcu_force_quiescent_state() uses __this_cpu_read() in preemptible code instead of the proper raw_cpu_read(). This commit therefore changes __this_cpu_read() to raw_cpu_read().
Product status
d860d40327dde251d508a234fa00bd0d90fbb656 (git) before 3d92527a919edd1aa381bdd6c299dd75a8167396
d860d40327dde251d508a234fa00bd0d90fbb656 (git) before 5a52380b8193cf8be6c4a6b94b86ef64ed80c0dc
d860d40327dde251d508a234fa00bd0d90fbb656 (git) before 98a5b1265a36e9d843a51ddd6c9fa02da50d2c57
d860d40327dde251d508a234fa00bd0d90fbb656 (git) before a74af9b937707b42c3fd041aae1ed4ce2f337307
d860d40327dde251d508a234fa00bd0d90fbb656 (git) before 80a3e7ab477b3655615fc1627c88c248d4ad28d9
d860d40327dde251d508a234fa00bd0d90fbb656 (git) before ceb1c8c9b8aa9199da46a0f29d2d5f08d9b44c15
3.17
Any version before 3.17
5.4.229 (semver)
5.10.163 (semver)
5.15.86 (semver)
6.0.16 (semver)
6.1.2 (semver)
6.2 (original_commit_for_fix)
References
git.kernel.org/...c/3d92527a919edd1aa381bdd6c299dd75a8167396
git.kernel.org/...c/5a52380b8193cf8be6c4a6b94b86ef64ed80c0dc
git.kernel.org/...c/98a5b1265a36e9d843a51ddd6c9fa02da50d2c57
git.kernel.org/...c/a74af9b937707b42c3fd041aae1ed4ce2f337307
git.kernel.org/...c/80a3e7ab477b3655615fc1627c88c248d4ad28d9
git.kernel.org/...c/ceb1c8c9b8aa9199da46a0f29d2d5f08d9b44c15