[PATCH v10 12/12] iommu/amd: Disable iommu only if amd_iommu=off is specified

From: Baoquan He
Date: Wed Aug 09 2017 - 04:34:40 EST


It's ok to disable iommu early in normal kernel or in kdump kernel when
amd_iommu=off is specified. While we should not disable it in kdump kernel
when on-flight dma is still on-going.

Signed-off-by: Baoquan He <bhe@xxxxxxxxxx>
---
v9->v10:
Change to call disable_iommus() in normal kernel and the case that
amd_iommu=off is set in kdump kernel. Otherwise if in kdump kernel
but amd_iommu=off is not specified, we can just keep it as it is
in 1st kernel.

drivers/iommu/amd_iommu_init.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c
index 88e7a6e950ae..c7d03251c80a 100644
--- a/drivers/iommu/amd_iommu_init.c
+++ b/drivers/iommu/amd_iommu_init.c
@@ -2499,7 +2499,8 @@ static int __init early_amd_iommu_init(void)
goto out;

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

if (amd_iommu_irq_remap)
amd_iommu_irq_remap = check_ioapic_information();
--
2.5.5