virtio-net: bugfix: do not delete netdev before virtio net
For the vhost-user net-card, it is allow to delete its network backend while the virtio-net device still exists. However, when the status of the device changes in guest, QEMU will check whether the network backend exists, otherwise it will crash. So do not allowed to delete the network backend directly without delete virtio-net device. Signed-off-by: Jinhua Cao <caojinhua1@huawei.com>
This commit is contained in:
parent
c86cebdfb5
commit
4fb0b966ec
38
virtio-net-bugfix-do-not-delete-netdev-before-virtio.patch
Normal file
38
virtio-net-bugfix-do-not-delete-netdev-before-virtio.patch
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
From 532566ba64b60f2dd2f8ff41d670712ccafe1e98 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jinhua Cao <caojinhua1@huawei.com>
|
||||||
|
Date: Thu, 10 Feb 2022 10:31:38 +0800
|
||||||
|
Subject: [PATCH] virtio-net: bugfix: do not delete netdev before virtio net
|
||||||
|
|
||||||
|
For the vhost-user net-card, it is allow to delete its
|
||||||
|
network backend while the virtio-net device still exists.
|
||||||
|
However, when the status of the device changes in guest,
|
||||||
|
QEMU will check whether the network backend exists, otherwise
|
||||||
|
it will crash.
|
||||||
|
So do not allowed to delete the network backend directly
|
||||||
|
without delete virtio-net device.
|
||||||
|
|
||||||
|
Signed-off-by: Jinhua Cao <caojinhua1@huawei.com>
|
||||||
|
---
|
||||||
|
net/net.c | 6 ++++++
|
||||||
|
1 file changed, 6 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/net/net.c b/net/net.c
|
||||||
|
index f0d14dbfc1..ed4b1c1740 100644
|
||||||
|
--- a/net/net.c
|
||||||
|
+++ b/net/net.c
|
||||||
|
@@ -1202,6 +1202,12 @@ void qmp_netdev_del(const char *id, Error **errp)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (nc->info->type == NET_CLIENT_DRIVER_VHOST_USER && nc->peer) {
|
||||||
|
+ error_setg(errp, "Device '%s' is a netdev for vhostuser,"
|
||||||
|
+ "please delete the peer front-end device (virtio-net) first.", id);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
qemu_del_net_client(nc);
|
||||||
|
|
||||||
|
/*
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user