|
@@ -2055,11 +2055,14 @@ static int domain_context_mapping_one(struct dmar_domain *domain,
|
|
|
if (context_copied(context)) {
|
|
|
u16 did_old = context_domain_id(context);
|
|
|
|
|
|
- if (did_old >= 0 && did_old < cap_ndoms(iommu->cap))
|
|
|
+ if (did_old >= 0 && did_old < cap_ndoms(iommu->cap)) {
|
|
|
iommu->flush.flush_context(iommu, did_old,
|
|
|
(((u16)bus) << 8) | devfn,
|
|
|
DMA_CCMD_MASK_NOBIT,
|
|
|
DMA_CCMD_DEVICE_INVL);
|
|
|
+ iommu->flush.flush_iotlb(iommu, did_old, 0, 0,
|
|
|
+ DMA_TLB_DSI_FLUSH);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
pgd = domain->pgd;
|