39 lines
1.2 KiB
Diff
39 lines
1.2 KiB
Diff
|
|
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
|
||
|
|
|