[GIT,PULL] x86/irq change for v6.7
Commit Message
Linus,
Please pull the latest x86/irq git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-irq-2023-10-28
# HEAD: f44075ecafb726830e63d33fbca29413149eeeb8 x86/nmi: Fix out-of-order NMI nesting checks & false positive warning
Fix out-of-order NMI nesting checks resulting in false positive warnings.
Thanks,
Ingo
------------------>
Paul E. McKenney (1):
x86/nmi: Fix out-of-order NMI nesting checks & false positive warning
arch/x86/kernel/nmi.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
Comments
The pull request you sent on Sat, 28 Oct 2023 15:43:39 +0200:
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-irq-2023-10-28
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/1641b9b04002c22f616a51a164c04b7f679d241f
Thank you!
@@ -507,12 +507,13 @@ DEFINE_IDTENTRY_RAW(exc_nmi)
}
this_cpu_write(nmi_state, NMI_EXECUTING);
this_cpu_write(nmi_cr2, read_cr2());
+
+nmi_restart:
if (IS_ENABLED(CONFIG_NMI_CHECK_CPU)) {
WRITE_ONCE(nsp->idt_seq, nsp->idt_seq + 1);
WARN_ON_ONCE(!(nsp->idt_seq & 0x1));
WRITE_ONCE(nsp->recv_jiffies, jiffies);
}
-nmi_restart:
/*
* Needs to happen before DR7 is accessed, because the hypervisor can
@@ -548,16 +549,16 @@ DEFINE_IDTENTRY_RAW(exc_nmi)
if (unlikely(this_cpu_read(nmi_cr2) != read_cr2()))
write_cr2(this_cpu_read(nmi_cr2));
- if (this_cpu_dec_return(nmi_state))
- goto nmi_restart;
-
- if (user_mode(regs))
- mds_user_clear_cpu_buffers();
if (IS_ENABLED(CONFIG_NMI_CHECK_CPU)) {
WRITE_ONCE(nsp->idt_seq, nsp->idt_seq + 1);
WARN_ON_ONCE(nsp->idt_seq & 0x1);
WRITE_ONCE(nsp->recv_jiffies, jiffies);
}
+ if (this_cpu_dec_return(nmi_state))
+ goto nmi_restart;
+
+ if (user_mode(regs))
+ mds_user_clear_cpu_buffers();
}
#if IS_ENABLED(CONFIG_KVM_INTEL)