aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/entry_64.S
diff options
context:
space:
mode:
authorAlexander van Heukelum <heukelum@mailshack.com>2008-11-23 04:15:32 -0500
committerIngo Molnar <mingo@elte.hu>2008-11-23 08:21:55 -0500
commit6efdcfaf16cc4fc76651603e083cf3ec4bd1e6de (patch)
tree5839f621451b6572546ed37c2ec69382e067d735 /arch/x86/kernel/entry_64.S
parent322648d1ba75280d62f114d47048beb0b35f5047 (diff)
x86: KPROBE_ENTRY should be paired wth KPROBE_END
Impact: move some code out of .kprobes.text KPROBE_ENTRY switches code generation to .kprobes.text, and KPROBE_END uses .popsection to get back to the previous section (.text, normally). Also replace ENDPROC by END, for consistency. Signed-off-by: Alexander van Heukelum <heukelum@fastmail.fm> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/entry_64.S')
-rw-r--r--arch/x86/kernel/entry_64.S16
1 files changed, 7 insertions, 9 deletions
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index 1a856c0b21a8..f2d546e16354 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -1167,7 +1167,7 @@ paranoid_schedule:
1167 TRACE_IRQS_OFF 1167 TRACE_IRQS_OFF
1168 jmp paranoid_userspace 1168 jmp paranoid_userspace
1169 CFI_ENDPROC 1169 CFI_ENDPROC
1170END(paranoid_exit) 1170KPROBE_END(paranoid_exit)
1171 1171
1172/* 1172/*
1173 * Exception entry point. This expects an error code/orig_rax on the stack. 1173 * Exception entry point. This expects an error code/orig_rax on the stack.
@@ -1259,7 +1259,7 @@ gs_change:
1259 CFI_ADJUST_CFA_OFFSET -8 1259 CFI_ADJUST_CFA_OFFSET -8
1260 ret 1260 ret
1261 CFI_ENDPROC 1261 CFI_ENDPROC
1262ENDPROC(native_load_gs_index) 1262END(native_load_gs_index)
1263 1263
1264 .section __ex_table,"a" 1264 .section __ex_table,"a"
1265 .align 8 1265 .align 8
@@ -1313,7 +1313,7 @@ ENTRY(kernel_thread)
1313 UNFAKE_STACK_FRAME 1313 UNFAKE_STACK_FRAME
1314 ret 1314 ret
1315 CFI_ENDPROC 1315 CFI_ENDPROC
1316ENDPROC(kernel_thread) 1316END(kernel_thread)
1317 1317
1318child_rip: 1318child_rip:
1319 pushq $0 # fake return address 1319 pushq $0 # fake return address
@@ -1329,7 +1329,7 @@ child_rip:
1329 mov %eax, %edi 1329 mov %eax, %edi
1330 call do_exit 1330 call do_exit
1331 CFI_ENDPROC 1331 CFI_ENDPROC
1332ENDPROC(child_rip) 1332END(child_rip)
1333 1333
1334/* 1334/*
1335 * execve(). This function needs to use IRET, not SYSRET, to set up all state properly. 1335 * execve(). This function needs to use IRET, not SYSRET, to set up all state properly.
@@ -1360,9 +1360,7 @@ ENTRY(kernel_execve)
1360 UNFAKE_STACK_FRAME 1360 UNFAKE_STACK_FRAME
1361 ret 1361 ret
1362 CFI_ENDPROC 1362 CFI_ENDPROC
1363ENDPROC(kernel_execve) 1363END(kernel_execve)
1364
1365
1366 1364
1367 /* runs on exception stack */ 1365 /* runs on exception stack */
1368KPROBE_ENTRY(nmi) 1366KPROBE_ENTRY(nmi)
@@ -1437,14 +1435,14 @@ ENTRY(call_softirq)
1437 decl %gs:pda_irqcount 1435 decl %gs:pda_irqcount
1438 ret 1436 ret
1439 CFI_ENDPROC 1437 CFI_ENDPROC
1440ENDPROC(call_softirq) 1438END(call_softirq)
1441 1439
1442KPROBE_ENTRY(ignore_sysret) 1440KPROBE_ENTRY(ignore_sysret)
1443 CFI_STARTPROC 1441 CFI_STARTPROC
1444 mov $-ENOSYS,%eax 1442 mov $-ENOSYS,%eax
1445 sysret 1443 sysret
1446 CFI_ENDPROC 1444 CFI_ENDPROC
1447ENDPROC(ignore_sysret) 1445KPROBE_END(ignore_sysret)
1448 1446
1449#ifdef CONFIG_XEN 1447#ifdef CONFIG_XEN
1450zeroentry xen_hypervisor_callback xen_do_hypervisor_callback 1448zeroentry xen_hypervisor_callback xen_do_hypervisor_callback