diff options
Diffstat (limited to 'arch/x86/entry/entry_32.S')
-rw-r--r-- | arch/x86/entry/entry_32.S | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/entry/entry_32.S b/arch/x86/entry/entry_32.S index 687e47f8a796..d309f30cf7af 100644 --- a/arch/x86/entry/entry_32.S +++ b/arch/x86/entry/entry_32.S | |||
@@ -46,6 +46,8 @@ | |||
46 | #include <asm/frame.h> | 46 | #include <asm/frame.h> |
47 | #include <asm/nospec-branch.h> | 47 | #include <asm/nospec-branch.h> |
48 | 48 | ||
49 | #include "calling.h" | ||
50 | |||
49 | .section .entry.text, "ax" | 51 | .section .entry.text, "ax" |
50 | 52 | ||
51 | /* | 53 | /* |
@@ -712,6 +714,7 @@ ENTRY(ret_from_fork) | |||
712 | /* When we fork, we trace the syscall return in the child, too. */ | 714 | /* When we fork, we trace the syscall return in the child, too. */ |
713 | movl %esp, %eax | 715 | movl %esp, %eax |
714 | call syscall_return_slowpath | 716 | call syscall_return_slowpath |
717 | STACKLEAK_ERASE | ||
715 | jmp restore_all | 718 | jmp restore_all |
716 | 719 | ||
717 | /* kernel thread */ | 720 | /* kernel thread */ |
@@ -886,6 +889,8 @@ ENTRY(entry_SYSENTER_32) | |||
886 | ALTERNATIVE "testl %eax, %eax; jz .Lsyscall_32_done", \ | 889 | ALTERNATIVE "testl %eax, %eax; jz .Lsyscall_32_done", \ |
887 | "jmp .Lsyscall_32_done", X86_FEATURE_XENPV | 890 | "jmp .Lsyscall_32_done", X86_FEATURE_XENPV |
888 | 891 | ||
892 | STACKLEAK_ERASE | ||
893 | |||
889 | /* Opportunistic SYSEXIT */ | 894 | /* Opportunistic SYSEXIT */ |
890 | TRACE_IRQS_ON /* User mode traces as IRQs on. */ | 895 | TRACE_IRQS_ON /* User mode traces as IRQs on. */ |
891 | 896 | ||
@@ -997,6 +1002,8 @@ ENTRY(entry_INT80_32) | |||
997 | call do_int80_syscall_32 | 1002 | call do_int80_syscall_32 |
998 | .Lsyscall_32_done: | 1003 | .Lsyscall_32_done: |
999 | 1004 | ||
1005 | STACKLEAK_ERASE | ||
1006 | |||
1000 | restore_all: | 1007 | restore_all: |
1001 | TRACE_IRQS_IRET | 1008 | TRACE_IRQS_IRET |
1002 | SWITCH_TO_ENTRY_STACK | 1009 | SWITCH_TO_ENTRY_STACK |