| Subject | Re: [PATCH v3 05/16] iommu/vt-d: support flushing more TLB types | From | "Lukoshkov, Maksim" <> | Date | Mon, 20 Nov 2017 14:20:31 +0000 |
| |
On 11/17/2017 18:55, Jacob Pan wrote: > +void qi_flush_dev_iotlb(struct intel_iommu *iommu, u16 sid, u16 pfsid, > + u16 qdep, u64 addr, unsigned mask) > +{ > + struct qi_desc desc; > + > + pr_debug_ratelimited("%s: sid %d, pfsid %d, qdep %d, addr %llx, mask %d\n", > + __func__, sid, pfsid, qdep, addr, mask); > if (mask) { > BUG_ON(addr & ((1 << (VTD_PAGE_SHIFT + mask)) - 1)); > addr |= (1ULL << (VTD_PAGE_SHIFT + mask - 1)) - 1; > @@ -1352,7 +1366,41 @@ void qi_flush_dev_iotlb(struct intel_iommu *iommu, u16 sid, u16 qdep, > qdep = 0; > > desc.low = QI_DEV_IOTLB_SID(sid) | QI_DEV_IOTLB_QDEP(qdep) | > - QI_DIOTLB_TYPE; > + QI_DIOTLB_TYPE | QI_DEV_IOTLB_SID(pfsid);
QI_DEV_IOTLB_SID(pfsid) -> QI_DEV_EIOTLB_PFSID(pfsid)?
> + > + qi_submit_sync(&desc, iommu); > +} > +
Regards, Maksim Lukoshkov
|