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>
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;
if (net) {
vhost_net_cleanup(net);
}
- vhost_vdpa_del(ncs);
return -1;
}