aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoerg Roedel <joerg.roedel@amd.com>2009-09-03 09:39:23 -0400
committerJoerg Roedel <joerg.roedel@amd.com>2009-09-03 09:55:23 -0400
commitd586d7852ccd0cecb502bf4809f827e60c486af0 (patch)
tree42d01aaa0acfa6a9e73ba99db5c032653aed7a8b
parente394d72aa8b319211b8f947d151d9d50b0fde842 (diff)
x86/amd-iommu: Add function to flush all DTEs on one IOMMU
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>
-rw-r--r--arch/x86/kernel/amd_iommu.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c
index 64cc582feb9b..2dc093370d2d 100644
--- a/arch/x86/kernel/amd_iommu.c
+++ b/arch/x86/kernel/amd_iommu.c
@@ -516,6 +516,19 @@ void amd_iommu_flush_all_domains(void)
516 flush_all_domains_on_iommu(iommu); 516 flush_all_domains_on_iommu(iommu);
517} 517}
518 518
519static void flush_all_devices_for_iommu(struct amd_iommu *iommu)
520{
521 int i;
522
523 for (i = 0; i <= amd_iommu_last_bdf; ++i) {
524 if (iommu != amd_iommu_rlookup_table[i])
525 continue;
526
527 iommu_queue_inv_dev_entry(iommu, i);
528 iommu_completion_wait(iommu);
529 }
530}
531
519void amd_iommu_flush_all_devices(void) 532void amd_iommu_flush_all_devices(void)
520{ 533{
521 struct amd_iommu *iommu; 534 struct amd_iommu *iommu;