Hi This is a big rework of the network failover setup. General idea is: * We don't cache the name of the primary/standby devices We have several problems there with stale pointers * After this: - We can always remove either the primary/standby devices without trouble - Pluggin/unplugging works - We go to device opts to see what the failover device are. Notice that we are plugging/unplugging the device, so it is not critical. - Once there, I "fixed" managedsave for libvirt (now gives an error instead o= f just hanging) * Fields not cached anymore: - primary_device_dict - primary_device_opts - standby_id - primary_device_id - primary_dev * I renamed the should_be_hidden() callback to hide device, but if people preffer the old name I can leave it. * Add (some) doc to some functions * Remove almost 100 lines of code while fixing things.
Please review. Later, Juan. Juan Quintela (27): migration: Network Failover can't work with a paused guest failover: fix indentantion failover: Use always atomics for primary_should_be_hidden failover: primary bus is only used once, and where it is set failover: Remove unused parameter failover: Remove external partially_hotplugged property failover: qdev_device_add() returns err or dev set failover: Rename bool to failover_primary_hidden failover: g_strcmp0() knows how to handle NULL failover: Remove primary_device_opts failover: remove standby_id variable failover: Remove primary_device_dict failover: Remove memory leak failover: simplify virtio_net_find_primary() failover: should_be_hidden() should take a bool failover: Rename function to hide_device() failover: virtio_net_connect_failover_devices() does nothing failover: Rename to failover_find_primary_device() failover: simplify qdev_device_add() failover case failover: simplify qdev_device_add() failover: make sure that id always exist failover: remove failover_find_primary_device() error parameter failover: split failover_find_primary_device_id() failover: We don't need to cache primary_device_id anymore failover: Caller of this two functions already have primary_dev failover: simplify failover_unplug_primary failover: Remove primary_dev member include/hw/qdev-core.h | 28 ++-- include/hw/virtio/virtio-net.h | 9 +- hw/core/qdev.c | 19 +-- hw/net/virtio-net.c | 298 +++++++++++++-------------------- migration/migration.c | 13 ++ softmmu/qdev-monitor.c | 43 ++--- 6 files changed, 167 insertions(+), 243 deletions(-) --=20 2.26.2