diff options
author | Alexander van Heukelum <heukelum@mailshack.com> | 2008-11-23 04:15:32 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-11-23 08:21:55 -0500 |
commit | 6efdcfaf16cc4fc76651603e083cf3ec4bd1e6de (patch) | |
tree | 5839f621451b6572546ed37c2ec69382e067d735 /arch/x86/kernel/entry_64.S | |
parent | 322648d1ba75280d62f114d47048beb0b35f5047 (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.S | 16 |
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 |
1170 | END(paranoid_exit) | 1170 | KPROBE_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 |
1262 | ENDPROC(native_load_gs_index) | 1262 | END(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 |
1316 | ENDPROC(kernel_thread) | 1316 | END(kernel_thread) |
1317 | 1317 | ||
1318 | child_rip: | 1318 | child_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 |
1332 | ENDPROC(child_rip) | 1332 | END(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 |
1363 | ENDPROC(kernel_execve) | 1363 | END(kernel_execve) |
1364 | |||
1365 | |||
1366 | 1364 | ||
1367 | /* runs on exception stack */ | 1365 | /* runs on exception stack */ |
1368 | KPROBE_ENTRY(nmi) | 1366 | KPROBE_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 |
1440 | ENDPROC(call_softirq) | 1438 | END(call_softirq) |
1441 | 1439 | ||
1442 | KPROBE_ENTRY(ignore_sysret) | 1440 | KPROBE_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 |
1447 | ENDPROC(ignore_sysret) | 1445 | KPROBE_END(ignore_sysret) |
1448 | 1446 | ||
1449 | #ifdef CONFIG_XEN | 1447 | #ifdef CONFIG_XEN |
1450 | zeroentry xen_hypervisor_callback xen_do_hypervisor_callback | 1448 | zeroentry xen_hypervisor_callback xen_do_hypervisor_callback |