On Wed, Jul 20, 2022 at 01:41:13PM -0600, Alex Williamson wrote: > ie. we don't need the gfn, we only need the iova. Right, that makes sense > However then I start to wonder why we're passing in 1 for the number of > pages because this previously notifier, now callback is called for the > entire vfio_dma range when we find any pinned pages. Well, it is doing this because it only ever pins one page. The drivers are confused about what the contract is. vfio is calling the notifier with the entire IOVA range that is being unmapped and the drivers are expecting to receive notifications only for the IOVA they have actually pinned. > Should ap and ccw implementations of .dma_unmap just be replaced with a > BUG_ON(1)? The point of these callbacks is to halt concurrent DMA, and ccw does that today. It looks like AP is missing a call to ap_aqic(), so it is probably double wrong. What I'd suggest is adding a WARN_ON that the dma->pfn_list is not empty and leave these functions alone. Most likely AP should be fixed to call vfio_ap_irq_disable() and to check the q->saved_pfn against the IOVA. But I'm inclined to leave this as-is for this series given we are at rc7. Jason