Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 98def1de authored by Masami Hiramatsu's avatar Masami Hiramatsu Committed by Ingo Molnar
Browse files

kprobes, x86: Prohibit probing on thunk functions and restore



thunk/restore functions are also used for tracing irqoff etc.
and those are involved in kprobe's exception handling.
Prohibit probing on them to avoid kernel crash.

Signed-off-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Reviewed-by: default avatarSteven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/20140417081726.26341.3872.stgit@ltc230.yrl.intra.hitachi.co.jp


Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent 80271972
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -4,8 +4,8 @@
 *  (inspired by Andi Kleen's thunk_64.S)
 * Subject to the GNU public license, v.2. No warranty of any kind.
 */

	#include <linux/linkage.h>
	#include <asm/asm.h>

#ifdef CONFIG_TRACE_IRQFLAGS
	/* put return address in eax (arg1) */
@@ -22,6 +22,7 @@
	popl %ecx
	popl %eax
	ret
	_ASM_NOKPROBE(\name)
	.endm

	thunk_ra trace_hardirqs_on_thunk,trace_hardirqs_on_caller
+3 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@
#include <linux/linkage.h>
#include <asm/dwarf2.h>
#include <asm/calling.h>
#include <asm/asm.h>

	/* rdi:	arg1 ... normal C conventions. rax is saved/restored. */
	.macro THUNK name, func, put_ret_addr_in_rdi=0
@@ -25,6 +26,7 @@
	call \func
	jmp  restore
	CFI_ENDPROC
	_ASM_NOKPROBE(\name)
	.endm

#ifdef CONFIG_TRACE_IRQFLAGS
@@ -43,3 +45,4 @@ restore:
	RESTORE_ARGS
	ret
	CFI_ENDPROC
	_ASM_NOKPROBE(restore)