On Fri, Jan 24, 2025 at 04:30:32PM -0800, Nicolin Chen wrote: > The fault object was designed exclusively for hwpt's IO page faults (PRI). > But its queue implementation can be reused for other purposes too, such as > hardware IRQ and event injections to user space. > > Meanwhile, a fault object holds a list of faults. So it's more accurate to > call it a "fault queue". Combining the reusing idea above, abstract a new > iommufd_eventq as a common structure embedded into struct iommufd_fault, > similar to hwpt_paging holding a common hwpt. > > Add a common iommufd_eventq_ops and iommufd_eventq_init to prepare for an > IOMMUFD_OBJ_VEVENTQ (vIOMMU Event Queue). > > Reviewed-by: Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx> > Reviewed-by: Kevin Tian <kevin.tian@xxxxxxxxx> > Signed-off-by: Nicolin Chen <nicolinc@xxxxxxxxxx> > --- > drivers/iommu/iommufd/iommufd_private.h | 28 ++++-- > drivers/iommu/iommufd/fault.c | 111 +++++++++++++----------- > drivers/iommu/iommufd/hw_pagetable.c | 6 +- > 3 files changed, 82 insertions(+), 63 deletions(-) Reviewed-by: Jason Gunthorpe <jgg@xxxxxxxxxx> Jason