Messages in this thread Patch in this message | | | From | Pankaj Gupta <> | Subject | [PATCH v2 2/2] virtio_ring: packed ring: fix virtqueue_detach_unused_buf | Date | Thu, 8 Aug 2019 17:06:06 +0530 |
| |
This patch makes packed ring code compatible with split ring in function 'virtqueue_detach_unused_buf_*'.
Signed-off-by: Pankaj Gupta <pagupta@redhat.com> --- drivers/virtio/virtio_ring.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c index c8be1c4f5b55..1b98a6777b7e 100644 --- a/drivers/virtio/virtio_ring.c +++ b/drivers/virtio/virtio_ring.c @@ -1534,6 +1534,11 @@ static void *virtqueue_detach_unused_buf_packed(struct virtqueue *_vq) for (i = 0; i < vq->packed.vring.num; i++) { if (!vq->packed.desc_state[i].data) continue; + vq->packed.next_avail_idx--; + if (vq->packed.next_avail_idx < 0) { + vq->packed.next_avail_idx = vq->packed.vring.num - 1; + vq->packed.avail_wrap_counter ^= 1; + } /* detach_buf clears data, so grab it now. */ buf = vq->packed.desc_state[i].data; detach_buf_packed(vq, i, NULL); -- 2.21.0
| |