]> Pileus Git - ~andy/linux/commitdiff
x86/amd-iommu: Add function to flush all DTEs on one IOMMU
authorJoerg Roedel <joerg.roedel@amd.com>
Thu, 3 Sep 2009 13:39:23 +0000 (15:39 +0200)
committerJoerg Roedel <joerg.roedel@amd.com>
Thu, 3 Sep 2009 13:55:23 +0000 (15:55 +0200)
This function flushes all DTE entries on one IOMMU for all
devices behind this IOMMU. This is required for command
buffer resetting later.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
arch/x86/kernel/amd_iommu.c

index 64cc582feb9bf561f1534d3ed59e7335302c5edd..2dc093370d2de0e45e52fab36bc4fc7741e8a06b 100644 (file)
@@ -516,6 +516,19 @@ void amd_iommu_flush_all_domains(void)
                flush_all_domains_on_iommu(iommu);
 }
 
+static void flush_all_devices_for_iommu(struct amd_iommu *iommu)
+{
+       int i;
+
+       for (i = 0; i <= amd_iommu_last_bdf; ++i) {
+               if (iommu != amd_iommu_rlookup_table[i])
+                       continue;
+
+               iommu_queue_inv_dev_entry(iommu, i);
+               iommu_completion_wait(iommu);
+       }
+}
+
 void amd_iommu_flush_all_devices(void)
 {
        struct amd_iommu *iommu;