mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-28 05:12:49 +00:00
Fix out-of-order NMI nesting checks resulting in false positive warnings.
Signed-off-by: Ingo Molnar <mingo@kernel.org> -----BEGIN PGP SIGNATURE----- iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmU9D8IRHG1pbmdvQGtl cm5lbC5vcmcACgkQEnMQ0APhK1il7BAAq+Ke3O07Ru+aOpBljqaqDigZWHf9PG5w f7M2fx/XFKOPmTqhft+c2WoqymQql23WXIucdLR795xM10aLLsTKwk1govaQFIqj HmKMyyK4PC4g/1Vw60PtrGh4uWxykxqrz0tgYaIp+UxsGzBvAwxX9fhI0fENt6th DI+TuTqf5hiBB6/18Glwu4hFZOxsGDSyIdR833TeU8vdIJNnWRVYEMRd1SPoa7k4 l8+Slh4XoNwfRU8+iEqT3BJUupEcfsPx37Y67NCVl4Bv1rKXMeJbCq65j2TOmQjW X5yGonFfu9QbDBjf413gan+ToYFTsDrMni3pd8lt3WII7AOEchwThPCJuLVG3Q3j 4GxNO6Ul8tspiPXXe8IghPkHPWsjwM6NoXHJp3ZeEgWbiUDSakmOdIQ6yNV38CPv uoh5vd7MlLZu+eWeCGoErp2U3H0CVHj7UDASHDgGK4cGGi4Aoc+5ZAY2shU7jAYz qiiSn+ufaoka6lIyhKqhiMuybRmXwrSLfrNnIJBg8FJpPI89cOIZJzlD4L9y7p2f Fm37zT3n68H1UnAgSs18ZV7GCmJN02O9Cwnsu+9VHPXurPpTDzmvu+7TrXJ0fMgT NdqzV8V2wOWfsij45P+2aA1pR8EypP54PYr1N4Vwt5noOBqM0Ak71dXVenYbwAYM w3Ymx5kIxFM= =/att -----END PGP SIGNATURE----- Merge tag 'x86-irq-2023-10-28' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 irq fix from Ingo Molnar: "Fix out-of-order NMI nesting checks resulting in false positive warnings" * tag 'x86-irq-2023-10-28' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/nmi: Fix out-of-order NMI nesting checks & false positive warning
This commit is contained in:
commit
1641b9b040
1 changed files with 7 additions and 6 deletions
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue