[PATCH] virtio_ring: remove unnecessary to_vvq call in virtqueue_disable_cb_packed

From: Deming Wang
Date: Wed Jun 22 2022 - 03:51:13 EST


It passes '_vq' to virtqueue_use_indirect(), which still calls
to_vvq to get 'vq', let's directly pass 'vq'. It can avoid
unnecessary call of to_vvq in hot path.

Signed-off-by: Deming Wang <wangdeming@xxxxxxxxxx>
---
drivers/virtio/virtio_ring.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
index 13a7348cedff..af2b7785ed77 100644
--- a/drivers/virtio/virtio_ring.c
+++ b/drivers/virtio/virtio_ring.c
@@ -1475,10 +1475,8 @@ static void *virtqueue_get_buf_ctx_packed(struct virtqueue *_vq,
return ret;
}

-static void virtqueue_disable_cb_packed(struct virtqueue *_vq)
+static void virtqueue_disable_cb_packed(struct vring_virtqueue *vq)
{
- struct vring_virtqueue *vq = to_vvq(_vq);
-
if (vq->packed.event_flags_shadow != VRING_PACKED_EVENT_FLAG_DISABLE) {
vq->packed.event_flags_shadow = VRING_PACKED_EVENT_FLAG_DISABLE;
vq->packed.vring.driver->flags =
@@ -2007,7 +2005,7 @@ void virtqueue_disable_cb(struct virtqueue *_vq)
return;

if (vq->packed_ring)
- virtqueue_disable_cb_packed(_vq);
+ virtqueue_disable_cb_packed(vq);
else
virtqueue_disable_cb_split(_vq);
}
--
2.27.0