Please CC maintainers (MST in this case)
On Fri, 2021-10-01 at 18:42 +0000, Jiang Wang wrote:
> Added a check in vhost_vsock_common_send_transport_reset,
> and only send messages on event queue when the vsock host
> device is started.
>
> Suggested-by: Stefano Garzarella <sgarzare@redhat.com>
> Signed-off-by: Jiang Wang <jiang.wang@bytedance.com>
> ---
> hw/virtio/vhost-vsock-common.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/hw/virtio/vhost-vsock-common.c b/hw/virtio/vhost-vsock-
> common.c
> index 4ad6e234ad..64425719a2 100644
> --- a/hw/virtio/vhost-vsock-common.c
> +++ b/hw/virtio/vhost-vsock-common.c
> @@ -138,8 +138,10 @@ static void
> vhost_vsock_common_send_transport_reset(VHostVSockCommon *vvc)
> goto out;
> }
>
> - virtqueue_push(vq, elem, sizeof(event));
> - virtio_notify(VIRTIO_DEVICE(vvc), vq);
> + if (vvc->vhost_dev.started) {
> + virtqueue_push(vq, elem, sizeof(event));
> + virtio_notify(VIRTIO_DEVICE(vvc), vq);
> + }
>
> out:
> g_free(elem);
I agree that we should avoid to enqueue reset messages if the device is
not started, but this change is wrong, because we are still doing
`virtqueue_pop()`.
I think we should skip vhost_vsock_common_send_transport_reset()
entirely.
Thanks,
Stefano