Re: [PATCH v1 2/3] iommu/amd: Fix false positive in SB IOAPIC IVRS validation
From: Vasant Hegde
Date: Fri May 29 2026 - 00:32:59 EST
On 4/6/2026 9:10 PM, Wei Wang wrote:
> The check_ioapic_information() function is designed to prevent boot hangs
> by ensuring the Southbridge (SB) IOAPIC is properly mapped in the IVRS
> table before enabling Interrupt Remapping.
>
> Currently, this check passes if *any* enumerated IOAPIC matches the
> expected SB IOAPIC device ID. If a buggy BIOS assigns IOAPIC_SB_DEVID
> (00:14.0) to a non-SB IOAPIC entry in the IVRS, while the actual SB IOAPIC
> (APIC ID that owns GSI 0) gets a different or wrong devid, the check hits
> a false positive and succeeds.
>
> This erroneously enables Interrupt Remapping. Consequently, the IOMMU
> blocks unmapped interrupts from the actual SB IOAPIC, dropping the system
> timer and leading to a silent kernel boot hang.
>
> Tighten the validation to verify the device ID specifically against the SB
> IOAPIC by matching their APIC IDs first. This prevents the validation
> check from being bypassed via device ID aliasing.
>
> Fixes: c2ff5cf5294b ("iommu/amd: Work around wrong IOAPIC device-id in IVRS table")
> Signed-off-by: Wei Wang <wei.w.wang@xxxxxxxxxxx>
Reviewed-by: Vasant Hegde <vasant.hegde@xxxxxxx>
-Vasant