iommu/amd: Don't call early_amd_iommu_init() when AMD IOMMU is disabled
authorJoerg Roedel <jroedel@suse.de>
Wed, 17 Mar 2021 09:10:36 +0000 (10:10 +0100)
committerJoerg Roedel <jroedel@suse.de>
Thu, 18 Mar 2021 09:46:42 +0000 (10:46 +0100)
Don't even try to initialize the AMD IOMMU hardware when amd_iommu=off has been
passed on the kernel command line.

References: https://bugzilla.kernel.org/show_bug.cgi?id=212133
References: https://bugzilla.suse.com/show_bug.cgi?id=1183132
Cc: stable@vger.kernel.org # v5.11
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Link: https://lore.kernel.org/r/20210317091037.31374-3-joro@8bytes.org
Acked-by: Huang Rui <ray.huang@amd.com>
drivers/iommu/amd/init.c

index 3280e6f5b720e8a27371e2324b7980a48db9b1cc..61dae1800b7fa02ec0a54af97dd77be63e304b84 100644 (file)
@@ -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: