On Tue, Dec 12, 2023 at 01:17:47PM +0800, Baolu Lu wrote: > On 12/11/23 11:24 PM, Jason Gunthorpe wrote: > > Also iopf_queue_remove_device() is messed up - it returns an error > > code but nothing ever does anything with it 🙁 Remove functions like > > this should never fail. > > Yes, agreed. > > > > > Removal should be like I explained earlier: > > - Disable new PRI reception > > This could be done by > > rcu_assign_pointer(param->fault_param, NULL); > > ? Not without a synchronize_rcu disable new PRI reception should be done by the driver - it should turn off PRI generation in the IOMMU HW and flush any HW PRI queues. > > - Ack all outstanding PRQ to the device > > All outstanding page requests are responded with > IOMMU_PAGE_RESP_INVALID, indicating that device should not attempt any > retry. Yes Jason