> From: Nicolin Chen <nicolinc@xxxxxxxxxx> > Sent: Wednesday, January 8, 2025 1:10 AM > > 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). > > Also, add missing xa_destroy and mutex_destroy in iommufd_fault_destroy(). > > Reviewed-by: Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx> > Signed-off-by: Nicolin Chen <nicolinc@xxxxxxxxxx> Reviewed-by: Kevin Tian <kevin.tian@xxxxxxxxx>