mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 16:44:58 +02:00
vfio/virtio: Enable support for virtio-block live migration
With a functional and tested backend for virtio-block live migration, add the virtio-block device ID to the pci_device_id table. Currently, the driver supports legacy IO functionality only for virtio-net, and it is accounted for in specific parts of the code. To enforce this limitation, an explicit check for virtio-net, has been added in virtiovf_support_legacy_io(). Once a backend implements legacy IO functionality for virtio-block, the necessary support will be added to the driver, and this additional check should be removed. The module description was updated accordingly. Reviewed-by: Kevin Tian <kevin.tian@intel.com> Signed-off-by: Yishai Hadas <yishaih@nvidia.com> Link: https://lore.kernel.org/r/20250302162723.82578-1-yishaih@nvidia.com Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
This commit is contained in:
parent
0fd06844de
commit
384a530111
|
|
@ -1,11 +1,11 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
config VIRTIO_VFIO_PCI
|
||||
tristate "VFIO support for VIRTIO NET PCI VF devices"
|
||||
tristate "VFIO support for VIRTIO PCI VF devices"
|
||||
depends on VIRTIO_PCI
|
||||
select VFIO_PCI_CORE
|
||||
help
|
||||
This provides migration support for VIRTIO NET PCI VF devices
|
||||
using the VFIO framework. Migration support requires the
|
||||
This provides migration support for VIRTIO NET and BLOCK PCI VF
|
||||
devices using the VFIO framework. Migration support requires the
|
||||
SR-IOV PF device to support specific VIRTIO extensions,
|
||||
otherwise this driver provides no additional functionality
|
||||
beyond vfio-pci.
|
||||
|
|
|
|||
|
|
@ -382,7 +382,9 @@ static bool virtiovf_bar0_exists(struct pci_dev *pdev)
|
|||
|
||||
bool virtiovf_support_legacy_io(struct pci_dev *pdev)
|
||||
{
|
||||
return virtio_pci_admin_has_legacy_io(pdev) && !virtiovf_bar0_exists(pdev);
|
||||
/* For now, the legacy IO functionality is supported only for virtio-net */
|
||||
return pdev->device == 0x1041 && virtio_pci_admin_has_legacy_io(pdev) &&
|
||||
!virtiovf_bar0_exists(pdev);
|
||||
}
|
||||
|
||||
int virtiovf_init_legacy_io(struct virtiovf_pci_core_device *virtvdev)
|
||||
|
|
|
|||
|
|
@ -187,8 +187,9 @@ static void virtiovf_pci_remove(struct pci_dev *pdev)
|
|||
}
|
||||
|
||||
static const struct pci_device_id virtiovf_pci_table[] = {
|
||||
/* Only virtio-net is supported/tested so far */
|
||||
/* Only virtio-net and virtio-block are supported/tested so far */
|
||||
{ PCI_DRIVER_OVERRIDE_DEVICE_VFIO(PCI_VENDOR_ID_REDHAT_QUMRANET, 0x1041) },
|
||||
{ PCI_DRIVER_OVERRIDE_DEVICE_VFIO(PCI_VENDOR_ID_REDHAT_QUMRANET, 0x1042) },
|
||||
{}
|
||||
};
|
||||
|
||||
|
|
@ -221,4 +222,4 @@ module_pci_driver(virtiovf_pci_driver);
|
|||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Yishai Hadas <yishaih@nvidia.com>");
|
||||
MODULE_DESCRIPTION(
|
||||
"VIRTIO VFIO PCI - User Level meta-driver for VIRTIO NET devices");
|
||||
"VIRTIO VFIO PCI - User Level meta-driver for VIRTIO NET and BLOCK devices");
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user