Revision 9154b02c hw/virtio/dataplane/vring.c

b/hw/virtio/dataplane/vring.c
39 39

  
40 40
    vring_init(&vring->vr, virtio_queue_get_num(vdev, n), vring_ptr, 4096);
41 41

  
42
    vring->last_avail_idx = 0;
43
    vring->last_used_idx = 0;
42
    vring->last_avail_idx = virtio_queue_get_last_avail_idx(vdev, n);
43
    vring->last_used_idx = vring->vr.used->idx;
44 44
    vring->signalled_used = 0;
45 45
    vring->signalled_used_valid = false;
46 46

  
......
49 49
    return true;
50 50
}
51 51

  
52
void vring_teardown(Vring *vring)
52
void vring_teardown(Vring *vring, VirtIODevice *vdev, int n)
53 53
{
54
    virtio_queue_set_last_avail_idx(vdev, n, vring->last_avail_idx);
55

  
54 56
    hostmem_finalize(&vring->hostmem);
55 57
}
56 58

  

Also available in: Unified diff