2006-08-17 17:13:35

by S. P. Prasanna

[permalink] [raw]
Subject: [PATCH] Kprobes - x86_64 add KPROBE_END macro for .popsection

This patch replace .popsection with the KPROBE_END() macro, as
suggested by Jan Beulich similar to i386 architecture. This will
be helpful for the conversions ike the recent .section -> .pushsection
and .previous -> .popsection to be confined to the header defining
these macros, without need to touch any assembly files.

Signed-off-by: Prasanna S. P. <[email protected]>


arch/x86_64/kernel/entry.S | 18 ++++++------------
1 files changed, 6 insertions(+), 12 deletions(-)

diff -puN arch/x86_64/kernel/entry.S~kprobes-x86_64-add-popsection-macro-for-assembly-stub arch/x86_64/kernel/entry.S
--- linux-2.6.18-rc4-mm1/arch/x86_64/kernel/entry.S~kprobes-x86_64-add-popsection-macro-for-assembly-stub 2006-08-17 12:21:28.000000000 +0530
+++ linux-2.6.18-rc4-mm1-prasanna/arch/x86_64/kernel/entry.S 2006-08-17 12:23:57.000000000 +0530
@@ -903,8 +903,7 @@ error_kernelspace:
cmpq $gs_change,RIP(%rsp)
je error_swapgs
jmp error_sti
-END(error_entry)
- .popsection
+KPROBE_END(error_entry)

/* Reload gs selector with exception handling */
/* edi: new selector */
@@ -1023,8 +1022,7 @@ ENDPROC(execve)

KPROBE_ENTRY(page_fault)
errorentry do_page_fault
-END(page_fault)
- .popsection
+KPROBE_END(page_fault)

ENTRY(coprocessor_error)
zeroentry do_coprocessor_error
@@ -1045,8 +1043,7 @@ KPROBE_ENTRY(debug)
CFI_ADJUST_CFA_OFFSET 8
paranoidentry do_debug, DEBUG_STACK
paranoidexit
-END(debug)
- .popsection
+KPROBE_END(debug)

/* runs on exception stack */
KPROBE_ENTRY(nmi)
@@ -1060,8 +1057,7 @@ KPROBE_ENTRY(nmi)
jmp paranoid_exit1
CFI_ENDPROC
#endif
-END(nmi)
- .popsection
+KPROBE_END(nmi)

KPROBE_ENTRY(int3)
INTR_FRAME
@@ -1070,8 +1066,7 @@ KPROBE_ENTRY(int3)
paranoidentry do_int3, DEBUG_STACK
jmp paranoid_exit1
CFI_ENDPROC
-END(int3)
- .popsection
+KPROBE_END(int3)

ENTRY(overflow)
zeroentry do_overflow
@@ -1119,8 +1114,7 @@ END(stack_segment)

KPROBE_ENTRY(general_protection)
errorentry do_general_protection
-END(general_protection)
- .popsection
+KPROBE_END(general_protection)

ENTRY(alignment_check)
errorentry do_alignment_check

_
--
Prasanna S.P.
Linux Technology Center
India Software Labs, IBM Bangalore
Email: [email protected]
Ph: 91-80-41776329


2006-08-18 08:31:25

by Andi Kleen

[permalink] [raw]
Subject: Re: [PATCH] Kprobes - x86_64 add KPROBE_END macro for .popsection

On Thu, Aug 17, 2006 at 10:44:05PM +0530, S. P. Prasanna wrote:
> This patch replace .popsection with the KPROBE_END() macro, as
> suggested by Jan Beulich similar to i386 architecture. This will
> be helpful for the conversions ike the recent .section -> .pushsection
> and .previous -> .popsection to be confined to the header defining
> these macros, without need to touch any assembly files.

Already got the change, thank you.

-Andi