]> git.baikalelectronics.ru Git - kernel.git/commit
x86/apic: Do apic driver probe for "nosmp" use case
authorKuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Sat, 16 Apr 2022 02:45:32 +0000 (02:45 +0000)
committerThomas Gleixner <tglx@linutronix.de>
Sun, 1 May 2022 20:40:29 +0000 (22:40 +0200)
commit4801aa33fd99d9d914f17bf8aaa19aed01b1f59e
treed44ee6f1edfd17e6f0ad6468f035c91cd9f706b3
parent7b1526c40f2f1ce7de6192fd27cfe5a977accc5a
x86/apic: Do apic driver probe for "nosmp" use case

For the "nosmp" use case, the APIC initialization code selects
"APIC_SYMMETRIC_IO_NO_ROUTING" as the default interrupt mode and avoids
probing APIC drivers.

This works well for the default APIC modes, but for the x2APIC case the
probe function is required to allocate the cluster_hotplug mask. So in the
APIC_SYMMETRIC_IO_NO_ROUTING case when the x2APIC is initialized it
dereferences a NULL pointer and the kernel crashes.

This was observed on a TDX platform where x2APIC is enabled and "nosmp"
command line option is allowed.

To fix this issue, probe APIC drivers via default_setup_apic_routing() for
the APIC_SYMMETRIC_IO_NO_ROUTING interrupt mode too.

Suggested-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Suggested-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Tony Luck <tony.luck@intel.com>
Link: https://lore.kernel.org/r/a64f864e1114bcd63593286aaf61142cfce384ea.1650076869.git.sathyanarayanan.kuppuswamy@intel.com
arch/x86/kernel/apic/apic.c