Re: [PATCH 05/18] vhost-vdpa: don't cleanup twice in vhost_vdpa_add()
On Mon, Jun 21, 2021 at 12:16:37PM +0800, Jason Wang wrote: 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. Signed-off-by: Jason Wang --- net/vhost-vdpa.c | 11 --- 1 file changed, 11 deletions(-) Reviewed-by: Stefano Garzarella diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 728e63ff54..f5689a7c32 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -82,16 +82,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; @@ -122,7 +112,6 @@ err: if (net) { vhost_net_cleanup(net); } -vhost_vdpa_del(ncs); return -1; } -- 2.25.1
[PATCH 05/18] 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. Signed-off-by: Jason Wang --- net/vhost-vdpa.c | 11 --- 1 file changed, 11 deletions(-) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 728e63ff54..f5689a7c32 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -82,16 +82,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; @@ -122,7 +112,6 @@ err: if (net) { vhost_net_cleanup(net); } -vhost_vdpa_del(ncs); return -1; } -- 2.25.1