aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy@goop.org>2008-04-02 13:54:11 -0400
committerIngo Molnar <mingo@elte.hu>2008-04-24 17:57:33 -0400
commitb77797fb2bf31bf076e6b69736119bc6a077525b (patch)
tree4d0bfcb5bcc96988ef421c807837d7236fdb0e07 /arch/x86/kernel
parent2bd50036b5dfc929390ddc48be7f6314447b2be3 (diff)
xen: fold xen_sysexit into xen_iret
xen_sysexit and xen_iret were doing essentially the same thing. Rather than having a separate implementation for xen_sysexit, we can just strip the stack back to an iret frame and jump into xen_iret. This removes a lot of code and complexity - specifically, another critical region. Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/kernel')
-rw-r--r--arch/x86/kernel/entry_32.S9
1 files changed, 1 insertions, 8 deletions
diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S
index 209c334bb920..2a609dc3271c 100644
--- a/arch/x86/kernel/entry_32.S
+++ b/arch/x86/kernel/entry_32.S
@@ -1044,15 +1044,8 @@ ENTRY(xen_hypervisor_callback)
1044 1044
1045 jmp xen_iret_crit_fixup 1045 jmp xen_iret_crit_fixup
1046 1046
10471: cmpl $xen_sysexit_start_crit,%eax
1048 jb 2f
1049 cmpl $xen_sysexit_end_crit,%eax
1050 jae 2f
1051
1052 jmp xen_sysexit_crit_fixup
1053
1054ENTRY(xen_do_upcall) 1047ENTRY(xen_do_upcall)
10552: mov %esp, %eax 10481: mov %esp, %eax
1056 call xen_evtchn_do_upcall 1049 call xen_evtchn_do_upcall
1057 jmp ret_from_intr 1050 jmp ret_from_intr
1058 CFI_ENDPROC 1051 CFI_ENDPROC