In the Linux kernel, the following vulnerability has been resolved:
workqueue: Don't call cpumasktestcpu() with -1 CPU in wqupdatenodemaxactive()
For wqupdatenodemaxactive(), @offcpu of -1 indicates that no CPU is going down. The function was incorrectly calling cpumasktest_cpu() with -1 CPU leading to oopses like the following on some archs:
Unable to handle kernel paging request at virtual address ffff0002100296e0 .. pc : wqupdatenodemaxactive+0x50/0x1fc lr : wqupdatenodemaxactive+0x1f0/0x1fc ... Call trace: wqupdatenodemaxactive+0x50/0x1fc applywqattrscommit+0xf0/0x114 applyworkqueueattrslocked+0x58/0xa0 allocworkqueue+0x5ac/0x774 workqueueinitearly+0x460/0x540 startkernel+0x258/0x684 _primary_switched+0xb8/0xc0 Code: 9100a273 35000d01 53067f00 d0016dc1 (f8607a60) ---[ end trace 0000000000000000 ]--- Kernel panic - not syncing: Attempted to kill the idle task! ---[ end Kernel panic - not syncing: Attempted to kill the idle task! ]---
Fix it.