virtio: Fix used_idx wrap-around
The more_used() function compares the vq->vring.used->idx with last_used_idx. Since vq->vring.used->idx is a 16-bit integer, and last_used_idx is an unsigned int, this results in unpredictable behavior when vq->vring.used->idx wraps around. This patch corrects this by changing last_used_idx to the correct type. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
4d125de3a5
commit
1bc4953ed4
@ -53,7 +53,7 @@ struct vring_virtqueue
|
||||
unsigned int num_added;
|
||||
|
||||
/* Last used index we've seen. */
|
||||
unsigned int last_used_idx;
|
||||
u16 last_used_idx;
|
||||
|
||||
/* How to notify other side. FIXME: commonalize hcalls! */
|
||||
void (*notify)(struct virtqueue *vq);
|
||||
|
Loading…
Reference in New Issue
Block a user