[PATCH 2/2] iommu/amd: Remove ad-hoc checks that are never true

From: Rong Zhang

Date: Mon Aug 10 2026 - 16:39:23 EST


The state transitions of the AMD IOMMU Initialization State Machine
imply that some ad-hoc checks will never be true, so remove them.

Signed-off-by: Rong Zhang <i@xxxxxxxx>
---
drivers/iommu/amd/init.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/drivers/iommu/amd/init.c b/drivers/iommu/amd/init.c
index 31fce7c8f530..c988a6ee8b31 100644
--- a/drivers/iommu/amd/init.c
+++ b/drivers/iommu/amd/init.c
@@ -163,7 +163,6 @@ int amd_iommu_gpt_level = PAGE_MODE_4_LEVEL;
int amd_iommu_guest_ir = AMD_IOMMU_GUEST_IR_VAPIC;
static int amd_iommu_xt_mode = IRQ_REMAP_XAPIC_MODE;

-static bool amd_iommu_detected;
static bool amd_iommu_disabled __initdata;
static bool amd_iommu_force_enable __initdata;
static bool amd_iommu_irtcachedis;
@@ -3190,9 +3189,6 @@ static int __init early_amd_iommu_init(void)
acpi_status status;
u8 efr_hats, max_vasize;

- if (!amd_iommu_detected)
- return -ENODEV;
-
status = acpi_get_table("IVRS", 0, &ivrs_base);
if (status == AE_NOT_FOUND)
return -ENODEV;
@@ -3271,7 +3267,7 @@ static int __init early_amd_iommu_init(void)
}

/* Disable any previously enabled IOMMUs */
- if (!is_kdump_kernel() || amd_iommu_disabled)
+ if (!is_kdump_kernel())
disable_iommus();

if (amd_iommu_irq_remap)
@@ -3369,8 +3365,8 @@ static __init void iommu_snp_enable(void)
* The SNP support requires that IOMMU must be enabled, and is
* configured with V1 page table (DTE[Mode] = 0 is not supported).
*/
- if (no_iommu || iommu_default_passthrough()) {
- pr_warn("SNP: IOMMU disabled or configured in passthrough mode, SNP cannot be supported.\n");
+ if (iommu_default_passthrough()) {
+ pr_warn("SNP: IOMMU is configured in passthrough mode, SNP cannot be supported.\n");
goto disable_snp;
}

@@ -3660,7 +3656,6 @@ void __init amd_iommu_detect(void)
if (ret)
goto disable_snp;

- amd_iommu_detected = true;
iommu_detected = 1;
x86_init.iommu.iommu_init = amd_iommu_init;
return;

--
2.55.0