diff options
author | Jeremy Fitzhardinge <jeremy@goop.org> | 2008-04-02 10:54:11 -0700 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-04-24 23:57:33 +0200 |
commit | b77797fb2bf31bf076e6b69736119bc6a077525b (patch) | |
tree | 4d0bfcb5bcc96988ef421c807837d7236fdb0e07 /arch/x86/kernel | |
parent | 2bd50036b5dfc929390ddc48be7f6314447b2be3 (diff) | |
download | linux-b77797fb2bf31bf076e6b69736119bc6a077525b.tar.gz linux-b77797fb2bf31bf076e6b69736119bc6a077525b.tar.bz2 linux-b77797fb2bf31bf076e6b69736119bc6a077525b.zip |
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.S | 9 |
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) jmp xen_iret_crit_fixup -1: cmpl $xen_sysexit_start_crit,%eax - jb 2f - cmpl $xen_sysexit_end_crit,%eax - jae 2f - - jmp xen_sysexit_crit_fixup - ENTRY(xen_do_upcall) -2: mov %esp, %eax +1: mov %esp, %eax call xen_evtchn_do_upcall jmp ret_from_intr CFI_ENDPROC |