From 93aa239406bc3dc5b801b4a440d66e25d1e3d1e7 Mon Sep 17 00:00:00 2001 From: Yang Zhang Date: Mon, 30 Jul 2012 13:39:31 +0100 Subject: vt-d: fix wrong addr in IOTLB invalidation descriptor According to vt-d specs, the addr in IOTLB invalidation descriptor should be 4K page aligned. Signed-off-by: Yang Zhang Committed-by: Keir Fraser xen-unstable changeset: 25617:75eb78d6cf54 xen-unstable date: Thu Jul 19 15:46:02 2012 +0100 --- xen/drivers/passthrough/vtd/qinval.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/drivers/passthrough/vtd/qinval.c b/xen/drivers/passthrough/vtd/qinval.c index a1ac3ee7ba..6a410d8e8f 100644 --- a/xen/drivers/passthrough/vtd/qinval.c +++ b/xen/drivers/passthrough/vtd/qinval.c @@ -140,7 +140,7 @@ static int gen_iotlb_inv_dsc(struct iommu *iommu, int index, qinval_entry->q.iotlb_inv_dsc.hi.am = am; qinval_entry->q.iotlb_inv_dsc.hi.ih = ih; qinval_entry->q.iotlb_inv_dsc.hi.res_1 = 0; - qinval_entry->q.iotlb_inv_dsc.hi.addr = addr; + qinval_entry->q.iotlb_inv_dsc.hi.addr = addr >> PAGE_SHIFT_4K; unmap_vtd_domain_page(qinval_entries); spin_unlock_irqrestore(&qi_ctrl->qinval_lock, flags); -- cgit v1.2.3