Patchwork virtio: invoke set_features on load

login
register
mail settings
Submitter Michael S. Tsirkin
Date May 9, 2010, 4:42 p.m.
Message ID <20100509164209.GA20658@redhat.com>
Download mbox | patch
Permalink /patch/52003/
State New
Headers show

Comments

Michael S. Tsirkin - May 9, 2010, 4:42 p.m.
After migration, vhost was not getting features
acked because set_features callback was never invoked.
The fix is just to invoke that callback.

Reported-by: David L Stevens <dlstevens@us.ibm.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---

David, a tested-by tag would be appreciated.

 hw/virtio.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
David Stevens - May 10, 2010, 2:41 p.m.
"Michael S. Tsirkin" <mst@redhat.com> wrote on 05/09/2010 09:42:09 AM:

> After migration, vhost was not getting features
> acked because set_features callback was never invoked.
> The fix is just to invoke that callback.
> 
> Reported-by: David L Stevens <dlstevens@us.ibm.com>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> ---
> 
> David, a tested-by tag would be appreciated.

Tested-by: David L Stevens <dlstevens@us.ibm.com>

> 
>  hw/virtio.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/hw/virtio.c b/hw/virtio.c
> index 5d686f0..74c450d 100644
> --- a/hw/virtio.c
> +++ b/hw/virtio.c
> @@ -692,6 +692,8 @@ int virtio_load(VirtIODevice *vdev, QEMUFile *f)
>                  features, supported_features);
>          return -1;
>      }
> +    if (vdev->set_features)
> +        vdev->set_features(vdev, features);
>      vdev->guest_features = features;
>      vdev->config_len = qemu_get_be32(f);
>      qemu_get_buffer(f, vdev->config, vdev->config_len);
> -- 
> 1.7.1.12.g42b7f

Patch

diff --git a/hw/virtio.c b/hw/virtio.c
index 5d686f0..74c450d 100644
--- a/hw/virtio.c
+++ b/hw/virtio.c
@@ -692,6 +692,8 @@  int virtio_load(VirtIODevice *vdev, QEMUFile *f)
                 features, supported_features);
         return -1;
     }
+    if (vdev->set_features)
+        vdev->set_features(vdev, features);
     vdev->guest_features = features;
     vdev->config_len = qemu_get_be32(f);
     qemu_get_buffer(f, vdev->config, vdev->config_len);