mirror of
https://github.com/torvalds/linux.git
synced 2024-11-13 23:51:39 +00:00
2319b9c87f
The device may be scheduled during the resume process, so this cannot appear in atomic operations. Since pm_runtime_set_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 in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 651, name: sh preempt_count: 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: dump_backtrace.part.0+0xe0/0xf0 show_stack+0x18/0x30 dump_stack_lvl+0x64/0x80 dump_stack+0x1c/0x38 __might_resched+0x1fc/0x240 __might_sleep+0x68/0xc0 __pm_runtime_resume+0x9c/0xe0 rpm_get_suppliers+0x68/0x1b0 __pm_runtime_set_status+0x298/0x560 cdns_resume+0xb0/0x1c0 cdns3_controller_resume.isra.0+0x1e0/0x250 cdns3_plat_resume+0x28/0x40 Signed-off-by: Xiaolei Wang <xiaolei.wang@windriver.com> Acked-by: Peter Chen <peter.chen@kernel.org> Link: https://lore.kernel.org/r/20230616021952.1025854-1-xiaolei.wang@windriver.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
---|---|---|
.. | ||
cdns3-debug.h | ||
cdns3-ep0.c | ||
cdns3-gadget.c | ||
cdns3-gadget.h | ||
cdns3-imx.c | ||
cdns3-pci-wrap.c | ||
cdns3-plat.c | ||
cdns3-starfive.c | ||
cdns3-ti.c | ||
cdns3-trace.c | ||
cdns3-trace.h | ||
cdnsp-debug.h | ||
cdnsp-ep0.c | ||
cdnsp-gadget.c | ||
cdnsp-gadget.h | ||
cdnsp-mem.c | ||
cdnsp-pci.c | ||
cdnsp-ring.c | ||
cdnsp-trace.c | ||
cdnsp-trace.h | ||
core.c | ||
core.h | ||
drd.c | ||
drd.h | ||
gadget-export.h | ||
host-export.h | ||
host.c | ||
Kconfig | ||
Makefile |