device-assignment: Register as un-migratable
PATCH v3 1/1 device-assignment: Register as un-migratable
Use register_device_unmigratable() to declare ourselves as non-migratable.
Signed-off-by Alex Williamson <[email protected]>
---
v3: Use .name instead of repeating "pci-assign"
v2: Use dummy vmsd instead of dummy save_state
hw/device-assignment.c | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-)
hw/device-assignment.c +11 -0
@@ -1434,6 +1434,10 @@ static void assigned_dev_unregister_msix_mmio(AssignedDevice *dev) dev->msix_table_page =NULL ; } +static const VMStateDescription vmstate_assigned_device = { + .name ="pci-assign" +}; +static int assigned_initfn (struct PCIDevice *pci_dev) {AssignedDevice *dev =DO_UPCAST (AssignedDevice, dev, pci_dev);
@@ -1490,6 +1494,12 @@ static int assigned_initfn(struct PCIDevice *pci_dev)assigned_dev_load_option_rom (dev);QLIST_INSERT_HEAD (&devs, dev, next); + +/* Register a vmsd so that we can mark it unmigratable. */ +vmstate_register (&dev->dev.qdev,0 , &vmstate_assigned_device, dev); +register_device_unmigratable (&dev->dev.qdev, + vmstate_assigned_device.name, dev); +return 0 ; assigned_out:
@@ -1503,6 +1513,7 @@ static int assigned_exitfn(struct PCIDevice *pci_dev) {AssignedDevice *dev =DO_UPCAST (AssignedDevice, dev, pci_dev); +vmstate_unregister (&dev->dev.qdev, &vmstate_assigned_device, dev);QLIST_REMOVE (dev, next);deassign_device (dev);free_assigned_device (dev);
Marcelo Tosatti
AppliedQuoted 11 lines · Alex Williamson
Use
register_device_unmigratable()to declare ourselves as non-migratable.Signed-off-by Alex Williamson <[email protected]>---
v3: Use .name instead of repeating "pci-assign"
v2: Use dummy vmsd instead of dummysave_statehw/device-assignment.c | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-)
Applied, thanks.