[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-stable] [PATCH] vhost_net: init acked_features to backend_feat
From: |
Andrey Korolyov |
Subject: |
Re: [Qemu-stable] [PATCH] vhost_net: init acked_features to backend_features |
Date: |
Wed, 3 Sep 2014 13:29:30 +0400 |
On Wed, Sep 3, 2014 at 1:16 PM, Jason Wang <address@hidden> wrote:
> 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 <address@hidden>
>> Reported-by: Andrey Korolyov <address@hidden>
>> Cc: Nikolay Nikolaev <address@hidden>
>> Cc: address@hidden
>> Signed-off-by: Jason Wang <address@hidden>
>> Reviewed-by: Michael S. Tsirkin <address@hidden>
>> Signed-off-by: Michael S. Tsirkin <address@hidden>
>> ---
>> 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?
Networking is broken just after start, and buffer memory getting
corrupted at reset:
qemu-system-x86_64: /tmp/buildd/qemu-2.1.0+f1/memory.c:1614:
memory_region_del_eventfd: Assertion `i != mr->ioeventfd_nb' failed.