Re: [PATCH RFCv2 05/13] iommu: Turn fault_data to iommufd private pointer

From: Nicolin Chen
Date: Mon Feb 03 2025 - 12:49:24 EST


Hi Eric,

On Wed, Jan 29, 2025 at 01:40:54PM +0100, Eric Auger wrote:
> On 1/11/25 4:32 AM, Nicolin Chen wrote:
> > A "fault_data" was added exclusively for the iommufd_fault_iopf_handler()
> > used by IOPF/PRI use cases, along with the attach_handle. Now, the iommufd
> > version of sw_msi function will resue the attach_handle and fault_data for
> reuse

Ack.

> > diff --git a/drivers/iommu/iommufd/hw_pagetable.c b/drivers/iommu/iommufd/hw_pagetable.c
> > index ce03c3804651..f7c0d7b214b6 100644
> > --- a/drivers/iommu/iommufd/hw_pagetable.c
> > +++ b/drivers/iommu/iommufd/hw_pagetable.c
> > @@ -402,10 +402,10 @@ int iommufd_hwpt_alloc(struct iommufd_ucmd *ucmd)
> > }
> > hwpt->fault = fault;
> > hwpt->domain->iopf_handler = iommufd_fault_iopf_handler;
> > - hwpt->domain->fault_data = hwpt;
> > refcount_inc(&fault->obj.users);
> > iommufd_put_object(ucmd->ictx, &fault->obj);
> > }
> > + hwpt->domain->iommufd_hwpt = hwpt;

> don't we want to reset this somewhere on release path?

We do iommu_domain_free() entirely on HWPT's release path.

This basically sets the domain's "owner data" as Jason remarked:
https://lore.kernel.org/linux-iommu/20250113164037.GO5556@xxxxxxxxxx/

Thanks
Nicolin