aboutsummaryrefslogtreecommitdiff
path: root/hw/net
diff options
context:
space:
mode:
authorJuan Quintela <quintela@redhat.com>2020-07-03 13:48:13 +0200
committerJason Wang <jasowang@redhat.com>2020-07-15 21:00:13 +0800
commit650181007a027034620995eb3d5044cea1ec9b49 (patch)
tree99ff726be8903adc111ad2bc8f40786220b4f1f5 /hw/net
parent673205379fb499d2b72f2985b47ec7114282f5fe (diff)
downloadqemu-650181007a027034620995eb3d5044cea1ec9b49.zip
qemu-650181007a027034620995eb3d5044cea1ec9b49.tar.gz
qemu-650181007a027034620995eb3d5044cea1ec9b49.tar.bz2
virtio-net: fix removal of failover device
If you have a networking device and its virtio failover device, and you remove them in this order: - virtio device - the real device You get qemu crash. See bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1820120 Bug exist on qemu 4.2 and 5.0. But in 5.0 don't shows because commit 77b06bba62034a87cc61a9c8de1309ae3e527d97 somehow papers over it. CC: Jason Wang <jasowang@redhat.com> CC: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Laurent Vivier <lvivier@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
Diffstat (limited to 'hw/net')
-rw-r--r--hw/net/virtio-net.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index 10cc958..4895af1 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -3416,6 +3416,7 @@ static void virtio_net_device_unrealize(DeviceState *dev)
g_free(n->vlans);
if (n->failover) {
+ device_listener_unregister(&n->primary_listener);
g_free(n->primary_device_id);
g_free(n->standby_id);
qobject_unref(n->primary_device_dict);