On Tue, Feb 25, 2025 at 09:25:41AM -0800, Nicolin Chen wrote: > Aside from the IOPF framework, iommufd provides an additional pathway to > report hardware events, via the vEVENTQ of vIOMMU infrastructure. > > Define an iommu_vevent_arm_smmuv3 uAPI structure, and report stage-1 events > in the threaded IRQ handler. Also, add another four event record types that > can be forwarded to a VM. > > Reviewed-by: Kevin Tian <kevin.tian@xxxxxxxxx> > Reviewed-by: Jason Gunthorpe <jgg@xxxxxxxxxx> > Reviewed-by: Pranjal Shrivastavat <praan@xxxxxxxxxx> > Signed-off-by: Nicolin Chen <nicolinc@xxxxxxxxxx> > --- > drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 7 +++ > include/uapi/linux/iommufd.h | 23 +++++++ > .../arm/arm-smmu-v3/arm-smmu-v3-iommufd.c | 17 ++++++ > drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 60 +++++++++++-------- > 4 files changed, 82 insertions(+), 25 deletions(-) [...] > @@ -1866,7 +1869,14 @@ static int arm_smmu_handle_event(struct arm_smmu_device *smmu, > goto out_unlock; > } > > - ret = iommu_report_device_fault(master->dev, &fault_evt); > + if (event->stall) { > + ret = iommu_report_device_fault(master->dev, &fault_evt); > + } else { > + if (master->vmaster && !event->s2) > + ret = arm_vmaster_report_event(master->vmaster, evt); > + else > + ret = -EOPNOTSUPP; /* Unhandled events should be pinned */ > + } nit: You don't need this extra indentation. Patch looks fine: Acked-by: Will Deacon <will@xxxxxxxxxx> Will