virtio: fix vq->inuse recalc after migr
authorHalil Pasic <pasic@linux.vnet.ibm.com>
Mon, 19 Dec 2016 15:44:44 +0000 (16:44 +0100)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 10 Jan 2017 05:02:52 +0000 (07:02 +0200)
commite66bcc408146730958d1a840bda85d7ad51e0cd7
tree9e56c94da535bddfc600bd5e8b3cbadd9a6bc040
parentf18c697b55d1374af67b84c581abaece8ab2aca3
virtio: fix vq->inuse recalc after migr

Correct recalculation of vq->inuse after migration for the corner case
where the avail_idx has already wrapped but used_idx not yet.

Also change the type of the VirtQueue.inuse to unsigned int. This is
done to be consistent with other members representing sizes (VRing.num),
and because C99 guarantees max ring size < UINT_MAX but does not
guarantee max ring size < INT_MAX.

Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com>
Fixes: bccdef6b ("virtio: recalculate vq->inuse after migration")
CC: qemu-stable@nongnu.org
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
hw/virtio/virtio.c