diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2020-07-10 11:45:22 +0200 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2020-07-10 11:45:22 +0200 |
commit | bc916e67c0eeb734fa877e63128db3d2352508f4 (patch) | |
tree | 530a19cda8cc36f7662d1ed417abd32d1e75cbfd | |
parent | x86/entry: Rename idtentry_enter/exit_cond_rcu() to idtentry_enter/exit() (diff) | |
parent | x86/entry/common: Make prepare_exit_to_usermode() static (diff) | |
download | linux-bc916e67c0eeb734fa877e63128db3d2352508f4.tar.xz linux-bc916e67c0eeb734fa877e63128db3d2352508f4.zip |
Merge branch 'x86/urgent' into x86/entry to pick up upstream fixes.
-rw-r--r-- | arch/x86/entry/common.c | 4 | ||||
-rw-r--r-- | arch/x86/include/asm/idtentry.h | 4 | ||||
-rw-r--r-- | arch/x86/kernel/traps.c | 2 |
3 files changed, 6 insertions, 4 deletions
diff --git a/arch/x86/entry/common.c b/arch/x86/entry/common.c index 0521546022cb..4eae4c1f254d 100644 --- a/arch/x86/entry/common.c +++ b/arch/x86/entry/common.c @@ -46,7 +46,7 @@ #include <trace/events/syscalls.h> /* Check that the stack and regs on entry from user mode are sane. */ -static void check_user_regs(struct pt_regs *regs) +static noinstr void check_user_regs(struct pt_regs *regs) { if (IS_ENABLED(CONFIG_DEBUG_ENTRY)) { /* @@ -294,7 +294,7 @@ static void __prepare_exit_to_usermode(struct pt_regs *regs) #endif } -__visible noinstr void prepare_exit_to_usermode(struct pt_regs *regs) +static noinstr void prepare_exit_to_usermode(struct pt_regs *regs) { instrumentation_begin(); __prepare_exit_to_usermode(regs); diff --git a/arch/x86/include/asm/idtentry.h b/arch/x86/include/asm/idtentry.h index 7227225cf45d..2293b443b193 100644 --- a/arch/x86/include/asm/idtentry.h +++ b/arch/x86/include/asm/idtentry.h @@ -557,7 +557,7 @@ DECLARE_IDTENTRY_RAW(X86_TRAP_MC, exc_machine_check); /* NMI */ DECLARE_IDTENTRY_NMI(X86_TRAP_NMI, exc_nmi); -#ifdef CONFIG_XEN_PV +#if defined(CONFIG_XEN_PV) && defined(CONFIG_X86_64) DECLARE_IDTENTRY_RAW(X86_TRAP_NMI, xenpv_exc_nmi); #endif @@ -567,7 +567,7 @@ DECLARE_IDTENTRY_DEBUG(X86_TRAP_DB, exc_debug); #else DECLARE_IDTENTRY_RAW(X86_TRAP_DB, exc_debug); #endif -#ifdef CONFIG_XEN_PV +#if defined(CONFIG_XEN_PV) && defined(CONFIG_X86_64) DECLARE_IDTENTRY_RAW(X86_TRAP_DB, xenpv_exc_debug); #endif diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c index 4627f826fb57..ab6828e360f2 100644 --- a/arch/x86/kernel/traps.c +++ b/arch/x86/kernel/traps.c @@ -303,6 +303,8 @@ DEFINE_IDTENTRY_ERRORCODE(exc_alignment_check) do_trap(X86_TRAP_AC, SIGBUS, "alignment check", regs, error_code, BUS_ADRALN, NULL); + + local_irq_disable(); } #ifdef CONFIG_VMAP_STACK |