|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [Patch RFC 09/13] vt-d: Put the page in Queued Invalidation(QI) interrupt handler if
the Device-TLB flush is completed.
Signed-off-by: Quan Xu <quan.xu@xxxxxxxxx>
---
xen/drivers/passthrough/vtd/iommu.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/xen/drivers/passthrough/vtd/iommu.c
b/xen/drivers/passthrough/vtd/iommu.c
index 5c03e41..1297dea 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -1154,6 +1154,7 @@ static void _do_iommu_qi(struct iommu *iommu)
{
unsigned long nr_dom, i;
struct domain *d = NULL;
+ struct page_info *page = NULL;
scan_again:
/*
@@ -1177,6 +1178,15 @@ scan_again:
{
qi_table_data(d) = 0;
qi_table_pollslot(d) = 0;
+ spin_lock(&qi_page_lock(d));
+ while ( (page = page_list_remove_head(
+ &qi_hold_page_list(d))) )
+ {
+ INTEL_IOMMU_DEBUG("IOMMU: Put page mfn : %"PRIx64"\n",
+ page_to_mfn(page));
+ put_page(page);
+ }
+ spin_unlock(&qi_page_lock(d));
QI_FLUSHING(d) = 0;
}
rcu_unlock_domain(d);
--
1.8.3.2
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |