• Masami Hiramatsu's avatar
    x86/kprobes: Prohibit probing on IRQ handlers directly · 0eae81dc
    Masami Hiramatsu authored
    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: default avatarMasami 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@devboxSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    0eae81dc
core.c 30.4 KB