> From: Baolu Lu <baolu.lu@xxxxxxxxxxxxxxx> > Sent: Wednesday, February 21, 2024 3:21 PM > > On 2024/2/21 14:49, Tian, Kevin wrote: > >>>> +struct iopf_attach_cookie { > >>>> + struct iommu_domain *domain; > >>>> + struct device *dev; > >>>> + unsigned int pasid; > >>>> + refcount_t users; > >>>> + > >>>> + void *private; > >>>> + void (*release)(struct iopf_attach_cookie *cookie); > >>>> +}; > >>> this cookie has nothing specific to iopf. > >>> > >>> it may makes more sense to build a generic > iommu_attach_device_cookie() > >>> helper so the same object can be reused in future other usages too. > >>> > >>> within iommu core it can check domain iopf handler and this generic > cookie > >>> to update iopf specific data e.g. the pasid_cookie xarray. > >> This means attaching an iopf-capable domain follows two steps: > >> > >> 1) Attaching the domain to the device. > >> 2) Setting up the iopf data, necessary for handling iopf data. > >> > >> This creates a time window during which the iopf is enabled, but the > >> software cannot handle it. Or not? > >> > > why two steps? in attach you can setup the iopf data when recognizing > > that the domain is iopf capable... > > Oh, maybe I misunderstood. So your proposal is to make the new interface > generic, not for iopf only? > yes.