Re: [PATCH v6 03/10] iommu: Add attach handle to struct iopf_group

From: Jason Gunthorpe
Date: Wed Jun 12 2024 - 09:37:44 EST


On Mon, May 27, 2024 at 12:05:10PM +0800, Lu Baolu wrote:
> @@ -206,20 +182,49 @@ void iommu_report_device_fault(struct device *dev, struct iopf_fault *evt)
> if (group == &abort_group)
> goto err_abort;
>
> - group->domain = get_domain_for_iopf(dev, fault);
> - if (!group->domain)
> + if (fault->prm.flags & IOMMU_FAULT_PAGE_REQUEST_PASID_VALID) {
> + group->attach_handle = iommu_attach_handle_get(dev->iommu_group,
> + fault->prm.pasid,
> + 0);
> + if (IS_ERR(group->attach_handle)) {
> + if (!device_iommu_capable(dev, IOMMU_CAP_USER_IOASID_TABLE))
> + goto err_abort;

I'm not excited about calling a function pointer on every fault. Let's
just add a constant flag to iommu_ops?

Jason