kprobes-x86_64 : entry.s::error_entry is not safe for kprobes
PATCH 1/1 kprobes-x86_64 : entry.s::error_entry is not safe for kprobes
This patch moves the entry.S:error_entry to .kprobes.text section, since code marked unsafe for kprobes jumps directly to entry.S::error_entry, that must be marked unsafe as Chuck Ebbert suggested.
This patch also moves all the ".previous.text" asm directives to ".previous" for kprobes section.
Signed-off-by Prasanna S.P. <[email protected]>
arch/x86_64/kernel/entry.S | 13 +++++++------ 1 files changed, 7 insertions(+), 6 deletions(-)
arch/x86_64/kernel/entry.S renamed from arch/x86_64/kernel/entry.S~kprobes-x86_64-move-error_code-to-kprobes-text-section +7 -6
@@ -813,7 +813,7 @@ paranoid_schedule\trace: * Exception entry point. This expects an error code/orig_rax on the stack * and the exception handler in %rax. */ -ENTRY(error_entry) +KPROBE_ENTRY(error_entry) _frame RDI /* rdi slot contains rax, oldrax contains error code */ cld
@@ -898,6 +898,7 @@ error_kernelspace: je error_swapgs jmp error_sti END(error_entry) + .previous /* Reload gs selector with exception handling */ /* edi: new selector */
@@ -1017,7 +1018,7 @@ ENDPROC(execve) KPROBE_ENTRY(page_fault) errorentry do_page_fault END(page_fault) - .previous .text + .previous ENTRY(coprocessor_error) zeroentry do_coprocessor_error
@@ -1039,7 +1040,7 @@ KPROBE_ENTRY(debug) paranoidentry do_debug, DEBUG_STACK paranoidexit END(debug) - .previous .text + .previous /* runs on exception stack */ KPROBE_ENTRY(nmi)
@@ -1054,7 +1055,7 @@ KPROBE_ENTRY(nmi) CFI_ENDPROC #endif END(nmi) - .previous .text + .previous KPROBE_ENTRY(int3) INTR_FRAME
@@ -1064,7 +1065,7 @@ KPROBE_ENTRY(int3) jmp paranoid_exit1 CFI_ENDPROC END(int3) - .previous .text + .previous ENTRY(overflow) zeroentry do_overflow
@@ -1113,7 +1114,7 @@ END(stack_segment) KPROBE_ENTRY(general_protection) errorentry do_general_protection END(general_protection) - .previous .text + .previous ENTRY(alignment_check) errorentry do_alignment_check
_
Signature · 5 lines
S.P. Prasanna Linux Technology Center India Software Labs, IBM Bangalore Email: [email protected] Ph: 91-80-41776329