]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/iommu/amd_iommu_init.c
iommu/amd: Suppress IO_PAGE_FAULTs in kdump kernel
[karo-tx-linux.git] / drivers / iommu / amd_iommu_init.c
index 3fa7e3b35507d1f14406c16635a43188f1ec0bfd..cf7896550e758535aa1d6579feef316d57b734c7 100644 (file)
@@ -29,6 +29,7 @@
 #include <linux/export.h>
 #include <linux/iommu.h>
 #include <linux/kmemleak.h>
+#include <linux/crash_dump.h>
 #include <asm/pci-direct.h>
 #include <asm/iommu.h>
 #include <asm/gart.h>
@@ -1900,6 +1901,14 @@ static void init_device_table_dma(void)
        for (devid = 0; devid <= amd_iommu_last_bdf; ++devid) {
                set_dev_entry_bit(devid, DEV_ENTRY_VALID);
                set_dev_entry_bit(devid, DEV_ENTRY_TRANSLATION);
+               /*
+                * In kdump kernels in-flight DMA from the old kernel might
+                * cause IO_PAGE_FAULTs. There are no reports that a kdump
+                * actually failed because of that, so just disable fault
+                * reporting in the hardware to get rid of the messages
+                */
+               if (is_kdump_kernel())
+                       set_dev_entry_bit(devid, DEV_ENTRY_NO_PAGE_FAULT);
        }
 }