In the Linux kernel, the following vulnerability has been resolved:
rcu: Fix _thiscpuread() lockdep warning in rcuforcequiescentstate()
Running rcutorture with non-zero fqsduration module parameter in a kernel built with CONFIGPREEMPTION=y results in the following splat:
BUG: using __thiscpuread() in preemptible [00000000] code: rcutorturefqs/398 caller is __thiscpupreemptcheck+0x13/0x20 CPU: 3 PID: 398 Comm: rcutorturefqs Not tainted 6.0.0-rc1-yoctodev-standard+ Call Trace: <TASK> dumpstacklvl+0x5b/0x86 dumpstack+0x10/0x16 checkpreemptiondisabled+0xe5/0xf0 __thiscpupreemptcheck+0x13/0x20 rcuforcequiescentstate.part.0+0x1c/0x170 rcuforcequiescentstate+0x1e/0x30 rcutorturefqs+0xca/0x160 ? rcutortureboost+0x430/0x430 kthread+0x192/0x1d0 ? kthreadcompleteandexit+0x30/0x30 retfromfork+0x22/0x30 </TASK>
The problem is that rcuforcequiescent_state() uses __thiscpuread() in preemptible code instead of the proper rawcpuread(). This commit therefore changes __thiscpuread() to rawcpuread().
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/50xxx/CVE-2022-50771.json",
"cna_assigner": "Linux"
}