forked from luck/tmp_suning_uos_patched
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 |
||
---|---|---|
.. | ||
cpu | ||
syscalls | ||
.gitignore | ||
asm-offsets.c | ||
dma.c | ||
entry-nommu.S | ||
entry.S | ||
exceptions.c | ||
ftrace.c | ||
head.S | ||
hw_exception_handler.S | ||
irq.c | ||
kgdb.c | ||
Makefile | ||
mcount.S | ||
microblaze_ksyms.c | ||
misc.S | ||
module.c | ||
process.c | ||
prom.c | ||
ptrace.c | ||
reset.c | ||
setup.c | ||
signal.c | ||
stacktrace.c | ||
sys_microblaze.c | ||
syscall_table.S | ||
timer.c | ||
traps.c | ||
unwind.c | ||
vmlinux.lds.S |