diff -urN oldtree/arch/i386/kernel/entry.S newtree/arch/i386/kernel/entry.S
--- oldtree/arch/i386/kernel/entry.S	2006-08-18 15:01:22.000000000 -0400
+++ newtree/arch/i386/kernel/entry.S	2006-08-19 17:05:57.622920250 -0400
@@ -646,7 +646,7 @@
 	call *%edi
 	jmp ret_from_exception
 	CFI_ENDPROC
-.popsection
+KPROBE_END(page_fault)
 
 ENTRY(coprocessor_error)
 	RING0_INT_FRAME
@@ -722,7 +722,7 @@
 	call do_debug
 	jmp ret_from_exception
 	CFI_ENDPROC
-.popsection
+KPROBE_END(debug)
 
 /*
  * NMI is doubly nasty. It can happen _while_ we're handling
@@ -807,7 +807,7 @@
 .section __ex_table,"a"
 	.align 4
 	.long 1b,iret_exc
-.previous
+KPROBE_END(nmi)
 
 KPROBE_ENTRY(int3)
 	RING0_INT_FRAME
@@ -819,7 +819,7 @@
 	call do_int3
 	jmp ret_from_exception
 	CFI_ENDPROC
-.popsection
+KPROBE_END(int3)
 
 ENTRY(overflow)
 	RING0_INT_FRAME
@@ -884,7 +884,7 @@
 	CFI_ADJUST_CFA_OFFSET 4
 	jmp error_code
 	CFI_ENDPROC
-.popsection
+KPROBE_END(general_protection)
 
 ENTRY(alignment_check)
 	RING0_EC_FRAME
diff -urN oldtree/include/linux/linkage.h newtree/include/linux/linkage.h
--- oldtree/include/linux/linkage.h	2006-08-18 15:01:22.000000000 -0400
+++ newtree/include/linux/linkage.h	2006-08-19 17:05:57.642921500 -0400
@@ -43,6 +43,10 @@
   .size name, .-name
 #endif
 
+#define KPROBE_END(name) \
+   END(name); \
+  .popsection
+
 #ifndef ENDPROC
 #define ENDPROC(name) \
   .type name, @function; \
