On Fri, May 10, 2024 at 11:20:01AM +0800, Baolu Lu wrote: > On 5/8/24 8:18 AM, Jason Gunthorpe wrote: > > On Tue, Apr 30, 2024 at 10:57:07PM +0800, Lu Baolu wrote: > > > diff --git a/drivers/iommu/iommufd/fault.c b/drivers/iommu/iommufd/fault.c > > > index 13125c0feecb..6357229bf3b4 100644 > > > --- a/drivers/iommu/iommufd/fault.c > > > +++ b/drivers/iommu/iommufd/fault.c > > > @@ -15,6 +15,124 @@ > > > #include "../iommu-priv.h" > > > #include "iommufd_private.h" > > > +static int iommufd_fault_iopf_enable(struct iommufd_device *idev) > > > +{ > > > + int ret; > > > + > > > + if (idev->iopf_enabled) > > > + return 0; > > > + > > > + ret = iommu_dev_enable_feature(idev->dev, IOMMU_DEV_FEAT_IOPF); > > > + if (ret) > > > + return ret; > > > + > > > + idev->iopf_enabled = true; > > > + > > > + return 0; > > > +} > > I would greatly prefer we remove this from the drivers :\ I guess it > > is Ok for now > > > > Doesn't this need a counter? We can have many fault capable PASIDs? > > That will get changed in the PASID series? > > Okay, let's design this more gracefully after the PASID interfaces are > landed. For now, we assume that the device driver will do this. Well, for now to work the device drivers do still need these calls. I'm trying to get them into NOPs in the drivers so we can remove this. Jason