Message ID | 20200703114813.5911-1-quintela@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | virtio-net: fix removal of failover device | expand |
On Fri, Jul 03, 2020 at 01:48:13PM +0200, Juan Quintela wrote: > 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> > > Signed-off-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Jason can you queue this pls? > --- > hw/net/virtio-net.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c > index 9bb5578e5d..8d84713df3 100644 > --- a/hw/net/virtio-net.c > +++ b/hw/net/virtio-net.c > @@ -3398,6 +3398,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); > -- > 2.25.4
On 2020/7/3 下午7:59, Michael S. Tsirkin wrote: > On Fri, Jul 03, 2020 at 01:48:13PM +0200, Juan Quintela wrote: >> 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> >> >> Signed-off-by: Juan Quintela<quintela@redhat.com> > Reviewed-by: Michael S. Tsirkin<mst@redhat.com> > > > Jason can you queue this pls? Queued. Thanks >
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index 9bb5578e5d..8d84713df3 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -3398,6 +3398,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);
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> Signed-off-by: Juan Quintela <quintela@redhat.com> --- hw/net/virtio-net.c | 1 + 1 file changed, 1 insertion(+)