On Tue, 20 Jul 2021 20:16:44 +0200 Laurent Vivier <lviv...@redhat.com> wrote:
> This simple change allows to test failover with a simulated device > like e1000e rather than a vfio device. > > This is interesting to developers that want to test failover on > a system with no vfio device. Moreover it simplifies host networking > configuration as we can use the same bridge for virtio-net and > the other failover networking device. > > Without this change the migration of a system configured with failover > fails with: > > Unknown ramblock "0000:00:01.1:00.0/e1000e.rom", cannot accept migration > error while loading state for instance 0x0 of device 'ram' > load of migration failed: Invalid argument > > Signed-off-by: Laurent Vivier <lviv...@redhat.com> Reviewed-by: Igor Mammedov <imamm...@redhat.com> > --- > hw/net/virtio-net.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c > index 16d20cdee52a..8f7735bad4f2 100644 > --- a/hw/net/virtio-net.c > +++ b/hw/net/virtio-net.c > @@ -3256,6 +3256,9 @@ static void > virtio_net_handle_migration_primary(VirtIONet *n, MigrationState *s) > if (migration_in_setup(s) && !should_be_hidden) { > if (failover_unplug_primary(n, dev)) { > vmstate_unregister(VMSTATE_IF(dev), qdev_get_vmsd(dev), dev); > + if (PCI_DEVICE(dev)->has_rom) { > + vmstate_unregister_ram(&PCI_DEVICE(dev)->rom , dev); > + } > qapi_event_send_unplug_primary(dev->id); > qatomic_set(&n->failover_primary_hidden, true); > } else {