x86, extable: Remove open-coded exception table entries in arch/x86/kernel/entry_64.S
Remove open-coded exception table entries in arch/x86/kernel/entry_64.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
6837a54dd6
commit
d7abc0fa99
1 changed files with 4 additions and 12 deletions
|
@ -55,6 +55,7 @@
|
||||||
#include <asm/paravirt.h>
|
#include <asm/paravirt.h>
|
||||||
#include <asm/ftrace.h>
|
#include <asm/ftrace.h>
|
||||||
#include <asm/percpu.h>
|
#include <asm/percpu.h>
|
||||||
|
#include <asm/asm.h>
|
||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
|
|
||||||
/* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */
|
/* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */
|
||||||
|
@ -900,18 +901,12 @@ restore_args:
|
||||||
|
|
||||||
irq_return:
|
irq_return:
|
||||||
INTERRUPT_RETURN
|
INTERRUPT_RETURN
|
||||||
|
_ASM_EXTABLE(irq_return, bad_iret)
|
||||||
.section __ex_table, "a"
|
|
||||||
.quad irq_return, bad_iret
|
|
||||||
.previous
|
|
||||||
|
|
||||||
#ifdef CONFIG_PARAVIRT
|
#ifdef CONFIG_PARAVIRT
|
||||||
ENTRY(native_iret)
|
ENTRY(native_iret)
|
||||||
iretq
|
iretq
|
||||||
|
_ASM_EXTABLE(native_iret, bad_iret)
|
||||||
.section __ex_table,"a"
|
|
||||||
.quad native_iret, bad_iret
|
|
||||||
.previous
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
.section .fixup,"ax"
|
.section .fixup,"ax"
|
||||||
|
@ -1181,10 +1176,7 @@ gs_change:
|
||||||
CFI_ENDPROC
|
CFI_ENDPROC
|
||||||
END(native_load_gs_index)
|
END(native_load_gs_index)
|
||||||
|
|
||||||
.section __ex_table,"a"
|
_ASM_EXTABLE(gs_change,bad_gs)
|
||||||
.align 8
|
|
||||||
.quad gs_change,bad_gs
|
|
||||||
.previous
|
|
||||||
.section .fixup,"ax"
|
.section .fixup,"ax"
|
||||||
/* running with kernelgs */
|
/* running with kernelgs */
|
||||||
bad_gs:
|
bad_gs:
|
||||||
|
|
Loading…
Add table
Reference in a new issue