From a55d5341577b6da26f071a8db4758b7afa59c51c Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Mon, 22 Aug 2011 10:10:04 +0100 Subject: [PATCH] AMD IOMMU: remove iommu tlb flush for non-present entries Fixes dom0 boot on some systems. Signed-off-by: Wei Wang --- xen/drivers/passthrough/amd/iommu_map.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xen/drivers/passthrough/amd/iommu_map.c b/xen/drivers/passthrough/amd/iommu_map.c index ea07aaed63..9effc61c8f 100644 --- a/xen/drivers/passthrough/amd/iommu_map.c +++ b/xen/drivers/passthrough/amd/iommu_map.c @@ -796,7 +796,10 @@ int amd_iommu_map_page(struct domain *d, unsigned long gfn, unsigned long mfn, if ( !need_flush ) goto out; - amd_iommu_flush_pages(d, gfn, 0); + /* 4K mapping for PV guests never changes, + * no need to flush if we trust non-present bits */ + if ( is_hvm_domain(d) ) + amd_iommu_flush_pages(d, gfn, 0); for ( merge_level = IOMMU_PAGING_MODE_LEVEL_2; merge_level <= hd->paging_mode; merge_level++ ) -- 2.30.2