On 09/03/2014 04:57 PM, Michael S. Tsirkin wrote:
> commit 2e6d46d77ed328d34a94688da8371bcbe243479b (vhost: add
> vhost_get_features and vhost_ack_features) removes the step that
> initializes the acked_features to backend_features.
>
> As this field is now uninitialized, vhost initialization will sometimes
> fail.
>
> To fix, initialize field in core vhost code.
>
> As the next step, cleanup vhost scsi code as well.
>
> Reported-by: Jason Wang <jasow...@redhat.com>
> Reported-by: Andrey Korolyov <and...@xdel.ru>
> Cc: Nikolay Nikolaev <n.nikol...@virtualopensystems.com>
> Cc: qemu-sta...@nongnu.org
> Signed-off-by: Jason Wang <jasow...@redhat.com>
> Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
> Signed-off-by: Michael S. Tsirkin <m...@redhat.com>
> ---
>  hw/virtio/vhost.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
> index 5d7c40a..e42e51f 100644
> --- a/hw/virtio/vhost.c
> +++ b/hw/virtio/vhost.c
> @@ -873,6 +873,9 @@ int vhost_dev_init(struct vhost_dev *hdev, void *opaque,
>      hdev->memory_changed = false;
>      memory_listener_register(&hdev->memory_listener, &address_space_memory);
>      hdev->force = force;
> +    /* Set minimal required set of features. */
> +    hdev->acked_features = hdev->backend_features;
> +
>      return 0;
>  fail_vq:
>      while (--i >= 0) {

Since vhost_ack_features() never clear a bit, if rebooting from a guest
w/ mrg rx buffer to a guest w/o it, network is broken?

Reply via email to