|
@@ -56,6 +56,7 @@
|
|
|
#include <asm/irq_vectors.h>
|
|
|
#include <asm/cpufeature.h>
|
|
|
#include <asm/alternative-asm.h>
|
|
|
+#include <asm/asm.h>
|
|
|
|
|
|
/* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */
|
|
|
#include <linux/elf-em.h>
|
|
@@ -151,10 +152,8 @@
|
|
|
.pushsection .fixup, "ax"
|
|
|
99: movl $0, (%esp)
|
|
|
jmp 98b
|
|
|
-.section __ex_table, "a"
|
|
|
- .align 4
|
|
|
- .long 98b, 99b
|
|
|
.popsection
|
|
|
+ _ASM_EXTABLE(98b,99b)
|
|
|
.endm
|
|
|
|
|
|
.macro PTGS_TO_GS
|
|
@@ -164,10 +163,8 @@
|
|
|
.pushsection .fixup, "ax"
|
|
|
99: movl $0, PT_GS(%esp)
|
|
|
jmp 98b
|
|
|
-.section __ex_table, "a"
|
|
|
- .align 4
|
|
|
- .long 98b, 99b
|
|
|
.popsection
|
|
|
+ _ASM_EXTABLE(98b,99b)
|
|
|
.endm
|
|
|
|
|
|
.macro GS_TO_REG reg
|
|
@@ -249,12 +246,10 @@
|
|
|
jmp 2b
|
|
|
6: movl $0, (%esp)
|
|
|
jmp 3b
|
|
|
-.section __ex_table, "a"
|
|
|
- .align 4
|
|
|
- .long 1b, 4b
|
|
|
- .long 2b, 5b
|
|
|
- .long 3b, 6b
|
|
|
.popsection
|
|
|
+ _ASM_EXTABLE(1b,4b)
|
|
|
+ _ASM_EXTABLE(2b,5b)
|
|
|
+ _ASM_EXTABLE(3b,6b)
|
|
|
POP_GS_EX
|
|
|
.endm
|
|
|
|
|
@@ -415,10 +410,7 @@ sysenter_past_esp:
|
|
|
jae syscall_fault
|
|
|
1: movl (%ebp),%ebp
|
|
|
movl %ebp,PT_EBP(%esp)
|
|
|
-.section __ex_table,"a"
|
|
|
- .align 4
|
|
|
- .long 1b,syscall_fault
|
|
|
-.previous
|
|
|
+ _ASM_EXTABLE(1b,syscall_fault)
|
|
|
|
|
|
GET_THREAD_INFO(%ebp)
|
|
|
|
|
@@ -485,10 +477,8 @@ sysexit_audit:
|
|
|
.pushsection .fixup,"ax"
|
|
|
2: movl $0,PT_FS(%esp)
|
|
|
jmp 1b
|
|
|
-.section __ex_table,"a"
|
|
|
- .align 4
|
|
|
- .long 1b,2b
|
|
|
.popsection
|
|
|
+ _ASM_EXTABLE(1b,2b)
|
|
|
PTGS_TO_GS_EX
|
|
|
ENDPROC(ia32_sysenter_target)
|
|
|
|
|
@@ -543,10 +533,7 @@ ENTRY(iret_exc)
|
|
|
pushl $do_iret_error
|
|
|
jmp error_code
|
|
|
.previous
|
|
|
-.section __ex_table,"a"
|
|
|
- .align 4
|
|
|
- .long irq_return,iret_exc
|
|
|
-.previous
|
|
|
+ _ASM_EXTABLE(irq_return,iret_exc)
|
|
|
|
|
|
CFI_RESTORE_STATE
|
|
|
ldt_ss:
|
|
@@ -901,10 +888,7 @@ END(device_not_available)
|
|
|
#ifdef CONFIG_PARAVIRT
|
|
|
ENTRY(native_iret)
|
|
|
iret
|
|
|
-.section __ex_table,"a"
|
|
|
- .align 4
|
|
|
- .long native_iret, iret_exc
|
|
|
-.previous
|
|
|
+ _ASM_EXTABLE(native_iret, iret_exc)
|
|
|
END(native_iret)
|
|
|
|
|
|
ENTRY(native_irq_enable_sysexit)
|
|
@@ -1093,13 +1077,10 @@ ENTRY(xen_failsafe_callback)
|
|
|
movl %eax,16(%esp)
|
|
|
jmp 4b
|
|
|
.previous
|
|
|
-.section __ex_table,"a"
|
|
|
- .align 4
|
|
|
- .long 1b,6b
|
|
|
- .long 2b,7b
|
|
|
- .long 3b,8b
|
|
|
- .long 4b,9b
|
|
|
-.previous
|
|
|
+ _ASM_EXTABLE(1b,6b)
|
|
|
+ _ASM_EXTABLE(2b,7b)
|
|
|
+ _ASM_EXTABLE(3b,8b)
|
|
|
+ _ASM_EXTABLE(4b,9b)
|
|
|
ENDPROC(xen_failsafe_callback)
|
|
|
|
|
|
BUILD_INTERRUPT3(xen_hvm_callback_vector, XEN_HVM_EVTCHN_CALLBACK,
|