On Sat, Feb 06, 2021 at 01:39:55PM +0100, Laurent Vivier wrote:
failover_add_primary() calls qdev_device_add() and doesn't unref
the device. Because of that, when the device is unplugged a reference
is remaining and prevents the cleanup of the object.
This prevents to be able to plugin back the failover primary device,
with errors like:
(qemu) device_add
vfio-pci,host=0000:41:00.0,id=hostdev0,bus=root.3,failover_pair_id=net0
(qemu) device_del hostdev0
We can check with "info qtree" and "info pci" that the device has been removed,
and then:
(qemu) device_add
vfio-pci,host=0000:41:00.0,id=hostdev1,bus=root.3,failover_pair_id=net0
Error: vfio 0000:41:00.0: device is already attached
(qemu) device_add
vfio-pci,host=0000:41:00.0,id=hostdev0,bus=root.3,failover_pair_id=net0
qemu-kvm: Duplicate ID 'hostdev0' for device
Fixes: 21e8709b29cd ("failover: Remove primary_dev member")
Cc: quint...@redhat.com
Signed-off-by: Laurent Vivier <lviv...@redhat.com>
---
hw/net/virtio-net.c | 2 ++
1 file changed, 2 insertions(+)
Reviewed-by: Jens Freimann <jfreim...@redhat.com>
Thank you Laurent!
regards,
Jens