At domain_context_mapping_one(), if the domain is still not assign domain id, it will assign a new domain_id for it, but the newly creating domain id is not update to domain, so the domain will keep an unkown domain id.
It will cause the issues: like flush wrong domain in iommu->flush.flush_iotlb, and free/release wrong domain. Tested-by: Zhiyuan Zhou <zhiyuan.z...@intel.com> Signed-off-by: Youquan Song <youquan.s...@intel.com> --- drivers/iommu/intel-iommu.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c index 43b9bfe..9cd522f 100644 --- a/drivers/iommu/intel-iommu.c +++ b/drivers/iommu/intel-iommu.c @@ -1625,6 +1625,7 @@ static int domain_context_mapping_one(struct dmar_domain *domain, int segment, } } + domain->id = id; context_set_domain_id(context, id); if (translation != CONTEXT_TT_PASS_THROUGH) { -- 1.7.7.4 _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu