Re: [PATCH v5 7/9] vfio/pci: Clean up BAR zap and revocation
Pranjal Shrivastava <[email protected]> Thu, 30 Jul 2026 23:20:08 +0000
| Newsgroups | org.kernel.vger.linux-pci,org.freedesktop.lists.dri-devel,org.kernel.vger.kvm,org.kernel.vger.linux-kernel,org.kernel.vger.linux-media |
|---|---|
| Message-ID | <[email protected]> |
On Wed, Jul 15, 2026 at 06:47:30PM +0100, Matt Evans wrote: > Previously, vfio_pci_zap_bars() (and the wrapper > vfio_pci_zap_and_down_write_memory_lock()) calls were paired with > calls to vfio_pci_dma_buf_move(). > > This commit replaces them with a unified new function, > vfio_pci_revoke_bars() containing both the vfio_pci_dma_buf_move() and > the unmap_mapping_range(), making it harder for callers to omit one. > It adds a wrapper, vfio_pci_lock_revoke_bars(), which takes the write > memory_lock before zapping, and adds a new vfio_pci_unrevoke_bars() > for the re-enable path. > > As of "vfio/pci: Convert BAR mmap() to use a DMABUF", the zap via > unmap_mapping_range() is no longer performed for vfio-pci since the > DMABUFs used for BAR mappings already zap PTEs when the > vfio_pci_dma_buf_move() occurs. > > However, it must be assumed that VFIO drivers which override the .mmap > op could create mappings _not_ backed by DMABUFs. So, the zap is > still performed on revoke if .mmap is overridden, using a new > zap_bars_on_revoke flag. A driver can explicitly opt out; the flag is > cleared by the hisi_acc_vfio_pci driver, since its .mmap just wraps > vfio_pci_core_mmap() and so still uses DMABUFs. > > Signed-off-by: Matt Evans <[email protected]> Reviewed-by: Pranjal Shrivastava <[email protected]> Thanks Praan