mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-30 07:26:46 +07:00
x86, extable: Remove open-coded exception table entries in arch/x86/kernel/entry_32.S
Remove open-coded exception table entries in arch/x86/kernel/entry_32.S, and replace them with _ASM_EXTABLE() macros; this will allow us to change the format and type of the exception table entries. Signed-off-by: H. Peter Anvin <hpa@zytor.com> Cc: David Daney <david.daney@cavium.com> Link: http://lkml.kernel.org/r/CA%2B55aFyijf43qSu3N9nWHEBwaGbb7T2Oq9A=9EyR=Jtyqfq_cQ@mail.gmail.com
This commit is contained in:
parent
1ce6f86815
commit
6837a54dd6
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user