On Mon, Aug 15, 2016 at 2:09 PM, Stefan Hajnoczi <stefa...@gmail.com> wrote: > On Fri, Aug 05, 2016 at 01:36:32PM +0200, Ladi Prosek wrote: >> diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c >> index 5af429a..65457e9 100644 >> --- a/hw/virtio/virtio-balloon.c >> +++ b/hw/virtio/virtio-balloon.c >> @@ -423,6 +423,26 @@ static int virtio_balloon_load_device(VirtIODevice >> *vdev, QEMUFile *f, >> return 0; >> } >> >> +static void virtio_balloon_vmstate_cb(void *opaque, int running, >> + RunState state) >> +{ >> + VirtIOBalloon *s = opaque; >> + >> + if (!running) { >> + /* put the stats element back if the VM is not running */ >> + if (s->stats_vq_elem != NULL) { >> + virtqueue_discard(s->svq, s->stats_vq_elem, s->stats_vq_offset); > > The third argument should be 0 because we did not write anything into > in_sg[].
Thanks! Then it looks like the regular virtqueue_push in balloon_stats_poll_cb should also be called with 0 and the stats_vq_offset field can be deleted altogether. We never write to in_sg. Ladi