In the Linux kernel, the following vulnerability has been resolved:
usb: cdns3: Put the cdns set active part outside the spin lock
The device may be scheduled during the resume process, so this cannot appear in atomic operations. Since pmruntimeset_active will resume suppliers, put set active outside the spin lock, which is only used to protect the struct cdns data structure, otherwise the kernel will report the following warning:
BUG: sleeping function called from invalid context at drivers/base/power/runtime.c:1163 inatomic(): 1, irqsdisabled(): 0, nonblock: 0, pid: 651, name: sh preemptcount: 1, expected: 0 RCU nest depth: 0, expected: 0 CPU: 0 PID: 651 Comm: sh Tainted: G WC 6.1.20 #1 Hardware name: Freescale i.MX8QM MEK (DT) Call trace: dumpbacktrace.part.0+0xe0/0xf0 showstack+0x18/0x30 dumpstacklvl+0x64/0x80 dumpstack+0x1c/0x38 _mightresched+0x1fc/0x240 _mightsleep+0x68/0xc0 _pmruntimeresume+0x9c/0xe0 rpmgetsuppliers+0x68/0x1b0 _pmruntimesetstatus+0x298/0x560 cdnsresume+0xb0/0x1c0 cdns3controllerresume.isra.0+0x1e0/0x250 cdns3plat_resume+0x28/0x40