Re: [PATCH 1/9] x86/nmi: Simplify unknown NMI panic handling
From: Huang, Kai
Date: Mon Mar 31 2025 - 18:52:27 EST
On Thu, 2025-03-27 at 23:46 +0000, Mehta, Sohil wrote:
> The unknown_nmi_panic variable is used to control whether the kernel
> should panic on unknown NMIs. There is a sysctl entry for the same, which
> can be used to change the behavior at runtime.
>
> However, it seems that in some places, the option unnecessarily depends
> on CONFIG_X86_LOCAL_APIC. Other code in nmi.c uses unknown_nmi_panic
> without such a dependency. This results in a few messy #ifdefs
> splattered across the code. The dependency was likely introduce due to a
^
introduced
[...]
> diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
> index c7164a8de983..c3e1ae7373e9 100644
> --- a/arch/x86/kernel/setup.c
> +++ b/arch/x86/kernel/setup.c
> @@ -7,10 +7,11 @@
> */
> #include <linux/acpi.h>
> #include <linux/console.h>
> -#include <linux/cpu.h>
> #include <linux/crash_dump.h>
> +#include <linux/cpu.h>
This code change doesn't seem to be able to make the headers in "alphabetical
order".
> #include <linux/dma-map-ops.h>
> #include <linux/efi.h>
> +#include <linux/hugetlb.h>
> #include <linux/ima.h>
> #include <linux/init_ohci1394_dma.h>
> #include <linux/initrd.h>
> @@ -18,21 +19,19 @@
> #include <linux/memblock.h>
> #include <linux/panic_notifier.h>
> #include <linux/pci.h>
> +#include <linux/random.h>
> #include <linux/root_dev.h>
> -#include <linux/hugetlb.h>
> -#include <linux/tboot.h>
> -#include <linux/usb/xhci-dbgp.h>
> #include <linux/static_call.h>
> #include <linux/swiotlb.h>
> -#include <linux/random.h>
> +#include <linux/tboot.h>
> +#include <linux/usb/xhci-dbgp.h>
> +#include <linux/vmalloc.h>
>
> #include <uapi/linux/mount.h>
>
> #include <xen/xen.h>
>
> #include <asm/apic.h>
> -#include <asm/efi.h>
Seems this header just got removed here but was never added back.
> -#include <asm/numa.h>
> #include <asm/bios_ebda.h>
> #include <asm/bugs.h>
> #include <asm/cacheinfo.h>
> @@ -47,18 +46,16 @@
> #include <asm/mce.h>
> #include <asm/memtype.h>
> #include <asm/mtrr.h>
> -#include <asm/realmode.h>
> +#include <asm/nmi.h>
> +#include <asm/numa.h>
> #include <asm/olpc_ofw.h>
> #include <asm/pci-direct.h>
> #include <asm/prom.h>
> #include <asm/proto.h>
> +#include <asm/realmode.h>
> #include <asm/thermal.h>
> #include <asm/unwind.h>
> #include <asm/vsyscall.h>
> -#include <linux/vmalloc.h>
> -#if defined(CONFIG_X86_LOCAL_APIC)
> -#include <asm/nmi.h>
> -#endif
>
[...]