[PATCH] iommu/amd: flush not present cache in iommu_map_page

From: Tom Murphy
Date: Wed Apr 24 2019 - 10:20:06 EST


check if there is a not-present cache present and flush it if there is.

Signed-off-by: Tom Murphy <tmurphy@xxxxxxxxxx>
---
drivers/iommu/amd_iommu.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
index f7cdd2ab7f11..8ef43224aae0 100644
--- a/drivers/iommu/amd_iommu.c
+++ b/drivers/iommu/amd_iommu.c
@@ -1636,6 +1636,12 @@ static int iommu_map_page(struct protection_domain *dom,
pte[i] = __pte;

update_domain(dom);
+ if (!dom->updated) {
+ if (unlikely(amd_iommu_np_cache)) {
+ domain_flush_pages(dom, bus_addr, page_size);
+ domain_flush_complete(dom);
+ }
+ }

/* Everything flushed out, free pages now */
free_page_list(freelist);
--
2.17.1