On 14/10/2026 00:13, Alex Williamson wrote:
On Tue, 6 Oct 2026 20:36:35 +0100 Matt Evans <[email protected]> wrote:diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c index cb0e4865d110..986852b1d44f 100644 --- a/drivers/vfio/pci/vfio_pci_core.c +++ b/drivers/vfio/pci/vfio_pci_core.c @@ -1337,13 +1338,18 @@ static int vfio_pci_ioctl_reset(struct vfio_pci_core_device *vdev, * have NoSoftRst-, the reset function can cause the PCI config space * reset without restoring the original state (saved locally in * 'vdev->pm_save'). + * + * The zap is done after making the device accessible in D0, + * because a DMABUF importer could access the device as part + * of its revocation cleanup.Nit, s/zap/revoke/
Doh, done. Also cleaning up a "zap/revoke" in the vfio_pci_dev_set_hot_reset chunk.
Thanks Matt
Thanks, Alex*/ vfio_pci_set_power_state(vdev, PCI_D0);- vfio_pci_dma_buf_move(vdev, true);+ vfio_pci_revoke_bars(vdev); + ret = pci_try_reset_function(vdev->pdev); if (__vfio_pci_memory_enabled(vdev)) - vfio_pci_dma_buf_move(vdev, false); + vfio_pci_unrevoke_bars(vdev); up_write(&vdev->memory_lock);return ret;
