This enabling should have been done in normal kernel. It's unnecessary to enable it again in kdump kernel. And clean up the function comments of init_device_table_dma. Signed-off-by: Baoquan He <bhe at redhat.com> --- drivers/iommu/amd_iommu_init.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c index 47a8fc9..8d5db2e 100644 --- a/drivers/iommu/amd_iommu_init.c +++ b/drivers/iommu/amd_iommu_init.c @@ -1651,7 +1651,12 @@ static int __init amd_iommu_init_pci(void) */ ret = amd_iommu_init_api(); - init_device_table_dma(); + for_each_iommu(iommu) { + if ( !translation_pre_enabled(iommu) ) { + init_device_table_dma(); + break; + } + } for_each_iommu(iommu) iommu_flush_all_caches(iommu); @@ -1829,8 +1834,7 @@ static int __init init_memory_definitions(struct acpi_table_header *table) } /* - * Init the device table to not allow DMA access for devices and - * suppress all page faults + * Init the device table to not allow DMA access for devices. */ static void init_device_table_dma(void) { -- 2.5.5