From: Yang Zhang Date: Thu, 19 Jul 2012 14:46:02 +0000 (+0100) Subject: vt-d: fix wrong addr in IOTLB invalidation descriptor X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~8185 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=d4619ab51e267a7b7587369b6593062349ecde9c;p=xen.git 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 --- 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);