Prechádzať zdrojové kódy

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>
Jeremy Fitzhardinge 17 rokov pred
rodič
commit
90e9f53662
2 zmenil súbory, kde vykonal 6 pridanie a 2 odobranie
  1. 1 1
      arch/x86/kernel/entry_32.S
  2. 5 1
      arch/x86/xen/xen-asm.S

+ 1 - 1
arch/x86/kernel/entry_32.S

@@ -409,7 +409,7 @@ restore_nocheck_notrace:
 irq_return:
 	INTERRUPT_RETURN
 .section .fixup,"ax"
-iret_exc:
+ENTRY(iret_exc)
 	pushl $0			# no error code
 	pushl $do_iret_error
 	jmp error_code

+ 5 - 1
arch/x86/xen/xen-asm.S

@@ -184,8 +184,12 @@ iret_restore_end:
 	   region is OK. */
 	je xen_hypervisor_callback
 
-	iret
+1:	iret
 xen_iret_end_crit:
+.section __ex_table,"a"
+	.align 4
+	.long 1b,iret_exc
+.previous
 
 hyper_iret:
 	/* put this out of line since its very rarely used */