Hi Kevin, On Fri, 3 Mar 2023 05:35:58 +0000, "Tian, Kevin" <kevin.tian@xxxxxxxxx> wrote: > > From: Baolu Lu <baolu.lu@xxxxxxxxxxxxxxx> > > Sent: Friday, March 3, 2023 12:38 PM > > > > On 3/3/23 11:02 AM, Tian, Kevin wrote: > > >> From: Baolu Lu <baolu.lu@xxxxxxxxxxxxxxx> > > >> Sent: Friday, March 3, 2023 10:49 AM > > >> > > >> On 3/3/23 10:36 AM, Tian, Kevin wrote: > > >>>> From: Baolu Lu <baolu.lu@xxxxxxxxxxxxxxx> > > >>>> Sent: Thursday, March 2, 2023 10:07 PM > > >>>>> + > > >>>>> + if (!sm_supported(iommu) || !info) > > >>>> > > >>>> @info has been referenced. !info check makes no sense. > > >>>> > > >>>> Add pasid_supported(iommu). > > >>>> > > >>>> Do you need to check whether the domain is compatible for this rid > > >>>> pasid? > > >>> > > >>> what kind of compatibility is concerned here? In concept a pasid > > >>> can be attached to any domain if it has been successfully attached > > >>> to rid. Probably we can add a check here that RID2PASID must > > >>> point to the domain already. > > >> > > >> "...if it has been successfully attached to rid..." > > >> > > >> We should not have this assumption in iommu driver's callback. The > > iommu > > >> driver has no (and should not have) knowledge about the history of > > >> any domain. > > > > > > but this is an op for default domain which must have been attached > > > to RID2PASID and any compatibility check between this domain and > > > device should be passed. > > > > This is an op for DMA, DMA-FQ and UNMANAGED domain. The IOMMU > > driver > > doesn't need to interpret the default domain concept. :-) > > > > yes if we target a general callback for all those domain types. > > and probably this is the right thing to do as in the end DMA type will > be removed with Jason's cleanup so, let me recap. set_dev_pasid() should make no assumptions of ordering, i.e. it is equal to iommu_domain_ops.attach_dev(). It will be kind of the same as Baolu's old patch https://lore.kernel.org/linux-iommu/20220614034411.1634238-1-baolu.lu@xxxxxxxxxxxxxxx/ Thanks, Jacob