mirror of https://gitee.com/openkylin/linux.git
58c644ba51
We call arch_cpu_idle() with RCU disabled, but then use local_irq_{en,dis}able(), which invokes tracing, which relies on RCU. Switch all arch_cpu_idle() implementations to use raw_local_irq_{en,dis}able() and carefully manage the lockdep,rcu,tracing state like we do in entry. (XXX: we really should change arch_cpu_idle() to not return with interrupts enabled) Reported-by: Sven Schnelle <svens@linux.ibm.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Reviewed-by: Mark Rutland <mark.rutland@arm.com> Tested-by: Mark Rutland <mark.rutland@arm.com> Link: https://lkml.kernel.org/r/20201120114925.594122626@infradead.org |
||
---|---|---|
.. | ||
.gitignore | ||
Makefile | ||
asm-offsets.c | ||
cpuinfo.c | ||
entry.S | ||
head.S | ||
insnemu.S | ||
irq.c | ||
kgdb.c | ||
misaligned.c | ||
module.c | ||
nios2_ksyms.c | ||
process.c | ||
prom.c | ||
ptrace.c | ||
setup.c | ||
signal.c | ||
sys_nios2.c | ||
syscall_table.c | ||
time.c | ||
traps.c | ||
vmlinux.lds.S |