Messages in this thread | | | Subject | Re: [PATCH v2 9/9] iommu/vt-d: Store guest PASID during bind | From | Auger Eric <> | Date | Tue, 1 Sep 2020 19:08:44 +0200 |
| |
Hi Jacob, On 8/22/20 6:35 AM, Jacob Pan wrote: > 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@linux.intel.com> > --- > 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 d8a5efa75095..4c958b1aec4c 100644 > --- a/drivers/iommu/intel/svm.c > +++ b/drivers/iommu/intel/svm.c > @@ -406,6 +406,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); don't you want to handle the returned value? > } > svm->iommu = iommu; > /* > @@ -517,6 +518,7 @@ int intel_svm_unbind_gpasid(struct device *dev, int pasid) > ioasid_attach_data(pasid, NULL); > ioasid_notify(pasid, IOASID_UNBIND, > IOASID_NOTIFY_SET); > + ioasid_attach_spid(pasid, INVALID_IOASID); So this answers my previous question ;-) but won't it enter the if (!ioasid_data) path and fail to reset the spid?
Eric > kfree(svm); > } > } >
| |