mirror of
https://github.com/torvalds/linux.git
synced 2024-11-15 08:31:55 +00:00
8aa9e85ada
There was a very small race window where resume to kernel mode from a Exception Path (or pure kernel mode which is true for most of ARC exceptions anyways), was not disabling interrupts in restore_regs, clobbering the exception regs Anton found the culprit call flow (after many sleepless nights) | 1. we got a Trap from user land | 2. started to service it. | 3. While doing some stuff on user-land memory (I think it is padzero()), | we got a DataTlbMiss | 4. On return from it we are taking "resume_kernel_mode" path | 5. NEED_RESHED is not set, so we go to "return from exception" path in | restore regs. | 6. there seems to be IRQ happening Signed-off-by: Vineet Gupta <vgupta@synopsys.com> Cc: <stable@vger.kernel.org> #3.10, 3.12, 3.13, 3.14 Cc: Anton Kolesov <Anton.Kolesov@synopsys.com> Cc: Francois Bedard <Francois.Bedard@synopsys.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
---|---|---|
.. | ||
.gitignore | ||
arc_hostlink.c | ||
arcksyms.c | ||
asm-offsets.c | ||
clk.c | ||
ctx_sw_asm.S | ||
ctx_sw.c | ||
devtree.c | ||
disasm.c | ||
entry.S | ||
fpu.c | ||
head.S | ||
irq.c | ||
kgdb.c | ||
kprobes.c | ||
Makefile | ||
module.c | ||
perf_event.c | ||
process.c | ||
ptrace.c | ||
reset.c | ||
setup.c | ||
signal.c | ||
smp.c | ||
stacktrace.c | ||
sys.c | ||
time.c | ||
traps.c | ||
troubleshoot.c | ||
unaligned.c | ||
unwind.c | ||
vmlinux.lds.S |