Message ID | 20210621041650.5826-9-jasowang@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | vhost-vDPA multiqueue | expand |
On Mon, Jun 21, 2021 at 12:16:40PM +0800, Jason Wang wrote: >Vhost_vdpa_add() can fail for various reasons, so the assertion of the >succeed is wrong. Instead, we should free the NetClientState and >propagate the error to the caller > >Signed-off-by: Jason Wang <jasowang@redhat.com> >--- > net/vhost-vdpa.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > >diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c >index 0da7bc347a..87b181a74e 100644 >--- a/net/vhost-vdpa.c >+++ b/net/vhost-vdpa.c >@@ -174,7 +174,10 @@ static int net_vhost_vdpa_init(NetClientState *peer, const char *device, > } > s->vhost_vdpa.device_fd = vdpa_device_fd; > ret = vhost_vdpa_add(nc, (void *)&s->vhost_vdpa); >- assert(s->vhost_net); >+ if (ret) { >+ qemu_close(vdpa_device_fd); >+ qemu_del_net_client(nc); >+ } Okay, I see now :-) Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> > return ret; > } > >-- >2.25.1 > >
diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 0da7bc347a..87b181a74e 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -174,7 +174,10 @@ static int net_vhost_vdpa_init(NetClientState *peer, const char *device, } s->vhost_vdpa.device_fd = vdpa_device_fd; ret = vhost_vdpa_add(nc, (void *)&s->vhost_vdpa); - assert(s->vhost_net); + if (ret) { + qemu_close(vdpa_device_fd); + qemu_del_net_client(nc); + } return ret; }
Vhost_vdpa_add() can fail for various reasons, so the assertion of the succeed is wrong. Instead, we should free the NetClientState and propagate the error to the caller Signed-off-by: Jason Wang <jasowang@redhat.com> --- net/vhost-vdpa.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)