diff options
author | Jeremy Fitzhardinge <jeremy@goop.org> | 2008-03-17 19:37:12 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-04-24 17:57:31 -0400 |
commit | 90e9f53662826db3cdd6d99bd394d727b05160c1 (patch) | |
tree | 5310e489d7fd62185706424a98df354e83e9a1a3 /arch | |
parent | 9666e9d44b83755c53615fb89c0787b6846786a1 (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>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/entry_32.S | 2 | ||||
-rw-r--r-- | arch/x86/xen/xen-asm.S | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S index f0f8934fc303..568c6ccd7ae2 100644 --- a/arch/x86/kernel/entry_32.S +++ b/arch/x86/kernel/entry_32.S | |||
@@ -409,7 +409,7 @@ restore_nocheck_notrace: | |||
409 | irq_return: | 409 | irq_return: |
410 | INTERRUPT_RETURN | 410 | INTERRUPT_RETURN |
411 | .section .fixup,"ax" | 411 | .section .fixup,"ax" |
412 | iret_exc: | 412 | ENTRY(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 fe161ed4b01e..99223cc323be 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 | 187 | 1: iret |
188 | xen_iret_end_crit: | 188 | xen_iret_end_crit: |
189 | .section __ex_table,"a" | ||
190 | .align 4 | ||
191 | .long 1b,iret_exc | ||
192 | .previous | ||
189 | 193 | ||
190 | hyper_iret: | 194 | hyper_iret: |
191 | /* put this out of line since its very rarely used */ | 195 | /* put this out of line since its very rarely used */ |