[PATCH v2 0/2] x86/x2apic: Fix hangup of defconfig kernel on resume from s2ram

From: Shashank Balaji

Date: Fri Mar 06 2026 - 00:57:14 EST


Changes in v2:
- Patch 1's commit references the ACPI spec (Sohil Mehta)
- Patch 2's commit references the Intel SDM (Jan's and Andrew's discussion)
- Patch 3 to rename x2apic_available() to x2apic_without_ir_available() dropped
due to a lack of direction
- Link to v1: https://lore.kernel.org/r/20260202-x2apic-fix-v1-0-71c8f488a88b@xxxxxxxx

On resume from s2ram, a defconfig kernel gets into a state where the x2apic
hardware state and the kernel's perceived state are different.

On boot, x2apic is enabled by the firmware, and then the kernel disables it
(relevant lines from dmesg):

[ 0.000381] x2apic: enabled by BIOS, switching to x2apic ops
[ 0.009939] APIC: Switched APIC routing to: cluster x2apic
[ 0.095151] x2apic: IRQ remapping doesn't support X2APIC mode
[ 0.095154] x2apic disabled
[ 0.095551] APIC: Switched APIC routing to: physical flat

defconfig has CONFIG_IRQ_REMAP=n, which leads to x2apic being disabled,
because on bare metal, x2apic has an architectural dependence on interrupt
remapping.

While resuming from s2ram, x2apic is enabled again by the firmware, but
the kernel continues using the physical flat apic routing. This causes a
hangup.

Patch 1 fixes this in lapic_resume() by disabling x2apic when the kernel expects
it to be disabled.
Patch 2 enables CONFIG_IRQ_REMAP in defconfig so that defconfig kernels at
least don't disable x2apic because of a lack of IRQ_REMAP support.

Signed-off-by: Rahul Bukte <rahul.bukte@xxxxxxxx>
Signed-off-by: Shashank Balaji <shashank.mahadasyam@xxxxxxxx>
---
---
Shashank Balaji (2):
x86/x2apic: Disable x2apic on resume if the kernel expects so
x86/defconfig: Add CONFIG_IRQ_REMAP

arch/x86/configs/x86_64_defconfig | 1 +
arch/x86/kernel/apic/apic.c | 10 ++++++++++
2 files changed, 11 insertions(+)
---
base-commit: e5dd3611420978eac7031c627604a64b01ec56eb
change-id: 20260201-x2apic-fix-85c8c1b5cb90

Best regards,
--
Shashank Balaji <shashank.mahadasyam@xxxxxxxx>