Masami Hiramatsu
0eae81dc9f
x86/kprobes: Prohibit probing on IRQ handlers directly
...
Prohibit probing on IRQ handlers in irqentry_text because
if it interrupts user mode, at that point we haven't changed
to kernel space yet and which eventually leads a double fault.
E.g.
# echo p apic_timer_interrupt > kprobe_events
# echo 1 > events/kprobes/enable
PANIC: double fault, error_code: 0x0
CPU: 1 PID: 814 Comm: less Not tainted 4.20.0-rc3+ #30
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996)
RIP: 0010:error_entry+0x12/0xf0
[snip]
Call Trace:
<ENTRY_TRAMPOLINE>
? native_iret+0x7/0x7
? async_page_fault+0x8/0x30
? trace_hardirqs_on_thunk+0x1c/0x1c
? error_entry+0x7c/0xf0
? async_page_fault+0x8/0x30
? native_iret+0x7/0x7
? int3+0xa/0x20
? trace_hardirqs_on_thunk+0x1c/0x1c
? error_entry+0x7c/0xf0
? int3+0xa/0x20
? apic_timer_interrupt+0x1/0x20
</ENTRY_TRAMPOLINE>
Kernel panic - not syncing: Machine halted.
Kernel Offset: disabled
---[ end Kernel panic - not syncing: Machine halted. ]---
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andrea Righi <righi.andrea@gmail.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/154998796400.31052.8406236614820687840.stgit@devbox
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2019-02-13 08:16:39 +01:00
..
2019-01-21 11:01:21 +01:00
2019-01-17 16:24:39 -08:00
2019-02-04 08:45:42 +01:00
2019-02-01 14:10:02 +00:00
2019-02-01 15:46:22 -08:00
2019-01-10 04:37:37 -08:00
2019-02-01 15:46:22 -08:00
2019-02-01 15:46:22 -08:00
2019-01-16 23:31:18 +09:00
2019-02-01 15:46:22 -08:00
2019-02-01 15:46:22 -08:00
2019-01-20 10:33:18 +12:00
2019-01-17 23:42:37 +09:00
2019-01-06 10:22:15 +09:00
2019-02-01 15:46:22 -08:00
2019-01-06 10:22:15 +09:00
2019-02-04 08:45:42 +01:00
2019-01-25 10:50:53 -08:00
2019-02-06 10:00:39 -03:00
2019-01-06 16:33:10 -08:00
2019-01-06 10:22:15 +09:00
2019-01-05 09:16:18 -08:00
2019-02-01 15:46:22 -08:00
2019-02-13 08:16:39 +01:00
2019-01-27 10:04:30 -08:00
2019-01-06 09:46:51 +09:00