diff options
Diffstat (limited to 'arch/x86/kernel/entry_32.S')
-rw-r--r-- | arch/x86/kernel/entry_32.S | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S index c778e4fa55a2..cfe28a715434 100644 --- a/arch/x86/kernel/entry_32.S +++ b/arch/x86/kernel/entry_32.S | |||
@@ -51,14 +51,14 @@ | |||
51 | #include <asm/percpu.h> | 51 | #include <asm/percpu.h> |
52 | #include <asm/dwarf2.h> | 52 | #include <asm/dwarf2.h> |
53 | #include <asm/processor-flags.h> | 53 | #include <asm/processor-flags.h> |
54 | #include "irq_vectors.h" | 54 | #include <asm/irq_vectors.h> |
55 | 55 | ||
56 | /* | 56 | /* |
57 | * We use macros for low-level operations which need to be overridden | 57 | * We use macros for low-level operations which need to be overridden |
58 | * for paravirtualization. The following will never clobber any registers: | 58 | * for paravirtualization. The following will never clobber any registers: |
59 | * INTERRUPT_RETURN (aka. "iret") | 59 | * INTERRUPT_RETURN (aka. "iret") |
60 | * GET_CR0_INTO_EAX (aka. "movl %cr0, %eax") | 60 | * GET_CR0_INTO_EAX (aka. "movl %cr0, %eax") |
61 | * ENABLE_INTERRUPTS_SYSCALL_RET (aka "sti; sysexit"). | 61 | * ENABLE_INTERRUPTS_SYSEXIT (aka "sti; sysexit"). |
62 | * | 62 | * |
63 | * For DISABLE_INTERRUPTS/ENABLE_INTERRUPTS (aka "cli"/"sti"), you must | 63 | * For DISABLE_INTERRUPTS/ENABLE_INTERRUPTS (aka "cli"/"sti"), you must |
64 | * specify what registers can be overwritten (CLBR_NONE, CLBR_EAX/EDX/ECX/ANY). | 64 | * specify what registers can be overwritten (CLBR_NONE, CLBR_EAX/EDX/ECX/ANY). |
@@ -349,7 +349,7 @@ sysenter_past_esp: | |||
349 | xorl %ebp,%ebp | 349 | xorl %ebp,%ebp |
350 | TRACE_IRQS_ON | 350 | TRACE_IRQS_ON |
351 | 1: mov PT_FS(%esp), %fs | 351 | 1: mov PT_FS(%esp), %fs |
352 | ENABLE_INTERRUPTS_SYSCALL_RET | 352 | ENABLE_INTERRUPTS_SYSEXIT |
353 | CFI_ENDPROC | 353 | CFI_ENDPROC |
354 | .pushsection .fixup,"ax" | 354 | .pushsection .fixup,"ax" |
355 | 2: movl $0,PT_FS(%esp) | 355 | 2: movl $0,PT_FS(%esp) |
@@ -874,10 +874,10 @@ ENTRY(native_iret) | |||
874 | .previous | 874 | .previous |
875 | END(native_iret) | 875 | END(native_iret) |
876 | 876 | ||
877 | ENTRY(native_irq_enable_syscall_ret) | 877 | ENTRY(native_irq_enable_sysexit) |
878 | sti | 878 | sti |
879 | sysexit | 879 | sysexit |
880 | END(native_irq_enable_syscall_ret) | 880 | END(native_irq_enable_sysexit) |
881 | #endif | 881 | #endif |
882 | 882 | ||
883 | KPROBE_ENTRY(int3) | 883 | KPROBE_ENTRY(int3) |
@@ -1024,6 +1024,7 @@ ENTRY(xen_sysenter_target) | |||
1024 | RING0_INT_FRAME | 1024 | RING0_INT_FRAME |
1025 | addl $5*4, %esp /* remove xen-provided frame */ | 1025 | addl $5*4, %esp /* remove xen-provided frame */ |
1026 | jmp sysenter_past_esp | 1026 | jmp sysenter_past_esp |
1027 | CFI_ENDPROC | ||
1027 | 1028 | ||
1028 | ENTRY(xen_hypervisor_callback) | 1029 | ENTRY(xen_hypervisor_callback) |
1029 | CFI_STARTPROC | 1030 | CFI_STARTPROC |