aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy@goop.org>2008-03-17 19:37:12 -0400
committerIngo Molnar <mingo@elte.hu>2008-04-24 17:57:31 -0400
commit90e9f53662826db3cdd6d99bd394d727b05160c1 (patch)
tree5310e489d7fd62185706424a98df354e83e9a1a3
parent9666e9d44b83755c53615fb89c0787b6846786a1 (diff)
xen: make sure iret faults are trapped
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>
-rw-r--r--arch/x86/kernel/entry_32.S2
-rw-r--r--arch/x86/xen/xen-asm.S6
2 files changed, 6 insertions, 2 deletions
diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S
index f0f8934fc30..568c6ccd7ae 100644
--- a/arch/x86/kernel/entry_32.S
+++ b/arch/x86/kernel/entry_32.S
@@ -409,7 +409,7 @@ restore_nocheck_notrace:
409irq_return: 409irq_return:
410 INTERRUPT_RETURN 410 INTERRUPT_RETURN
411.section .fixup,"ax" 411.section .fixup,"ax"
412iret_exc: 412ENTRY(iret_exc)
413 pushl $0 # no error code 413 pushl $0 # no error code
414 pushl $do_iret_error 414 pushl $do_iret_error
415 jmp error_code 415 jmp error_code
diff --git a/arch/x86/xen/xen-asm.S b/arch/x86/xen/xen-asm.S
index fe161ed4b01..99223cc323b 100644
--- a/arch/x86/xen/xen-asm.S
+++ b/arch/x86/xen/xen-asm.S
@@ -184,8 +184,12 @@ iret_restore_end:
184 region is OK. */ 184 region is OK. */
185 je xen_hypervisor_callback 185 je xen_hypervisor_callback
186 186
187 iret 1871: iret
188xen_iret_end_crit: 188xen_iret_end_crit:
189.section __ex_table,"a"
190 .align 4
191 .long 1b,iret_exc
192.previous
189 193
190hyper_iret: 194hyper_iret:
191 /* put this out of line since its very rarely used */ 195 /* put this out of line since its very rarely used */