Jean,
The original code does not call iommu_flush_iotlb_dsi(). What is the reason
the refractored code need to use domain selective invalidation?
Allen
-----
+ if ( page_count > 1 || gfn == -1 )
+ {
+ if ( iommu_flush_iotlb_dsi(iommu, iommu_domid,
+ 0, flush_dev_iotlb) )
+ iommu_flush_write_buffer(iommu);
+ }
+ else
+ {
+ if ( iommu_flush_iotlb_psi(iommu, iommu_domid,
+ (paddr_t)gfn << PAGE_SHIFT_4K, 0,
+ !dma_old_pte_present, flush_dev_iotlb) )
+ iommu_flush_write_buffer(iommu);
-----Original Message-----
From: Jean Guyader [mailto:jean.guyader@xxxxxxxxxxxxx]
Sent: Monday, November 07, 2011 10:25 AM
To: xen-devel@xxxxxxxxxxxxxxxxxxx
Cc: tim@xxxxxxx; Kay, Allen M; Jean Guyader
Subject: [PATCH 1/6] vtd: Refactor iotlb flush code
Factorize the iotlb flush code from map_page and unmap_page into it's own
function.
Signed-off-by: Jean Guyader <jean.guyader@xxxxxxxxxxxxx>
---
xen/drivers/passthrough/vtd/iommu.c | 86 +++++++++++++++++-----------------
1 files changed, 43 insertions(+), 43 deletions(-)
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|