On Wed, 2021-03-17 at 10:10 +0100, Joerg Roedel wrote: > diff --git a/drivers/iommu/amd/init.c b/drivers/iommu/amd/init.c > index 3280e6f5b720..61dae1800b7f 100644 > --- a/drivers/iommu/amd/init.c > +++ b/drivers/iommu/amd/init.c > @@ -2919,12 +2919,12 @@ static int __init state_next(void) > } > break; > case IOMMU_IVRS_DETECTED: > - ret = early_amd_iommu_init(); > - init_state = ret ? IOMMU_INIT_ERROR : IOMMU_ACPI_FINISHED; > - if (init_state == IOMMU_ACPI_FINISHED && amd_iommu_disabled) { > - pr_info("AMD IOMMU disabled\n"); > + if (amd_iommu_disabled) { > init_state = IOMMU_CMDLINE_DISABLED; > ret = -EINVAL; > + } else { > + ret = early_amd_iommu_init(); > + init_state = ret ? IOMMU_INIT_ERROR : IOMMU_ACPI_FINISHED; > } > break; > case IOMMU_ACPI_FINISHED: > -- If you've already moved the Stoney Ridge check out of the way, there's no real reason why you can't just set init_state=IOMMU_CMDLINE_DISABLED directly from parse_amd_iommu_options(), is there? Then you don't need the condition here at all?