IOASID core maintains the guest-host mapping in the form of SPID and IOASID. This patch assigns the guest PASID (if valid) as SPID while binding guest page table with a host PASID. This mapping will be used for lookup and notifications. Signed-off-by: Jacob Pan <jacob.jun.pan@xxxxxxxxxxxxxxx> --- drivers/iommu/intel/svm.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/iommu/intel/svm.c b/drivers/iommu/intel/svm.c index 8f886718df83..e18f8b5af9ba 100644 --- a/drivers/iommu/intel/svm.c +++ b/drivers/iommu/intel/svm.c @@ -98,6 +98,7 @@ static inline bool intel_svm_capable(struct intel_iommu *iommu) static inline void intel_svm_drop_pasid(ioasid_t pasid) { ioasid_detach_data(pasid); + ioasid_detach_spid(pasid); ioasid_put(NULL, pasid); } @@ -425,6 +426,7 @@ int intel_svm_bind_gpasid(struct iommu_domain *domain, struct device *dev, if (data->flags & IOMMU_SVA_GPASID_VAL) { svm->gpasid = data->gpasid; svm->flags |= SVM_FLAG_GUEST_PASID; + ioasid_attach_spid(data->hpasid, data->gpasid); } ioasid_attach_data(data->hpasid, svm); ioasid_get(NULL, svm->pasid); -- 2.7.4