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.
Best regards,
baolu