summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Wang2021-09-03 11:10:17 +0200
committerMichael S. Tsirkin2021-09-04 23:34:05 +0200
commitf47a47e458bc12fbc2dc940ad9bb6cb8199f75bd (patch)
tree2450e2a922f1d4ea18baacb851d47d68017c817b
parentvhost-vdpa: remove the unnecessary check in vhost_vdpa_add() (diff)
downloadqemu-f47a47e458bc12fbc2dc940ad9bb6cb8199f75bd.tar.gz
qemu-f47a47e458bc12fbc2dc940ad9bb6cb8199f75bd.tar.xz
qemu-f47a47e458bc12fbc2dc940ad9bb6cb8199f75bd.zip
vhost-vdpa: don't cleanup twice in vhost_vdpa_add()
The previous vhost_net_cleanup is sufficient for freeing, calling vhost_vdpa_del() in this case will lead an extra round of free. Note that this kind of "double free" is safe since vhost_dev_cleanup() zero the whole structure. Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> Signed-off-by: Jason Wang <jasowang@redhat.com> Message-Id: <20210903091031.47303-8-jasowang@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r--net/vhost-vdpa.c11
1 files changed, 0 insertions, 11 deletions
diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c
index 5c09cacd5a..3213e69d63 100644
--- a/net/vhost-vdpa.c
+++ b/net/vhost-vdpa.c
@@ -81,16 +81,6 @@ static int vhost_vdpa_net_check_device_id(struct vhost_net *net)
return ret;
}
-static void vhost_vdpa_del(NetClientState *ncs)
-{
- VhostVDPAState *s;
- assert(ncs->info->type == NET_CLIENT_DRIVER_VHOST_VDPA);
- s = DO_UPCAST(VhostVDPAState, nc, ncs);
- if (s->vhost_net) {
- vhost_net_cleanup(s->vhost_net);
- }
-}
-
static int vhost_vdpa_add(NetClientState *ncs, void *be)
{
VhostNetOptions options;
@@ -121,7 +111,6 @@ err:
if (net) {
vhost_net_cleanup(net);
}
- vhost_vdpa_del(ncs);
return -1;
}