]> git.proxmox.com Git - mirror_qemu.git/commit
vfio/pci: enable MSI-X in interrupt restoring on dynamic allocation
authorJing Liu <jing2.liu@intel.com>
Tue, 26 Sep 2023 02:14:07 +0000 (22:14 -0400)
committerCédric Le Goater <clg@redhat.com>
Thu, 5 Oct 2023 20:04:51 +0000 (22:04 +0200)
commiteaadba6f9b14823e52ee154d0052d69907deee8a
treeb2e9c5afc9ea8166f35b4bbaab17ab129e4df40a
parent5ebffa4e87e7a3127650ef2c0fc12e8624337ee4
vfio/pci: enable MSI-X in interrupt restoring on dynamic allocation

During migration restoring, vfio_enable_vectors() is called to restore
enabling MSI-X interrupts for assigned devices. It sets the range from
0 to nr_vectors to kernel to enable MSI-X and the vectors unmasked in
guest. During the MSI-X enabling, all the vectors within the range are
allocated according to the VFIO_DEVICE_SET_IRQS ioctl.

When dynamic MSI-X allocation is supported, we only want the guest
unmasked vectors being allocated and enabled. Use vector 0 with an
invalid fd to get MSI-X enabled, after that, all the vectors can be
allocated in need.

Signed-off-by: Jing Liu <jing2.liu@intel.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Reviewed-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Cédric Le Goater <clg@redhat.com>
hw/vfio/pci.c