Re: [PATCH v3 2/2] virtio: decrement avail idx with buffer detach for packed ring
From: Pankaj Gupta <hidden>
Date: 2019-08-12 05:37:28
Also in:
lkml
On 2019/8/9 下午2:48, Pankaj Gupta wrote:quoted
This patch decrements 'next_avail_idx' count when detaching a buffer from vq for packed ring code. Split ring code already does this in virtqueue_detach_unused_buf_split function. This updates the 'next_avail_idx' to the previous correct index after an unused buffer is detatched from the vq. Signed-off-by: Pankaj Gupta <redacted> --- drivers/virtio/virtio_ring.c | 6 ++++++ 1 file changed, 6 insertions(+)diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c index c8be1c4f5b55..7c69181113e2 100644 --- a/drivers/virtio/virtio_ring.c +++ b/drivers/virtio/virtio_ring.c@@ -1537,6 +1537,12 @@ static void*virtqueue_detach_unused_buf_packed(struct virtqueue *_vq) /* detach_buf clears data, so grab it now. */ buf = vq->packed.desc_state[i].data; detach_buf_packed(vq, i, NULL); + 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; + } + END_USE(vq); return buf; }Acked-by: Jason Wang <redacted>
Thank you, Jason. Best regards, Pankaj
_______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization