Re: [PATCH v5 4/7] iommu/vt-d: Factoring out PASID set up helper function

Jacob Pan
2023-05-04T21:34:52Z

Hi Baolu,

On Wed, 3 May 2023 14:37:16 +0800, Baolu Lu <baolu.lu@linux.intel.com>
wrote:

> On 4/28/23 5:47 PM, Tian, Kevin wrote:
> >> From: Jacob Pan <jacob.jun.pan@linux.intel.com>
> >> Sent: Friday, April 28, 2023 1:50 AM
> >>
> >>
> >> +static int dmar_domain_attach_device_pasid(struct dmar_domain *domain,
> >> + struct intel_iommu *iommu,
> >> + struct device *dev,
> >> ioasid_t pasid) +{
> >> + int ret;
> >> +
> >> + /* PASID table is mandatory for a PCI device in scalable
> >> mode. */
> >> + if (!sm_supported(iommu) && dev_is_real_dma_subdevice(dev))
> >> + return -EOPNOTSUPP;
> >
> > "&&" should be "||"
> >
>
> Also should return success instead if this is a RID case. Perhaps,
>
> if (!sm_supported(iommu) || dev_is_real_dma_subdevice(dev))
> return pasid == RID2PASID ? 0 : -EOPNOTSUPP;
>
Yeah, I think this is better. will do.

I was hoping not to treat RIDPASID special here. The caller of this
function does the check if that is RIDPASID but code is duplicated.

Thanks,

Jacob