Messages in this thread Patch in this message | | | From | Bo Liu <> | Subject | [PATCH] virtio_ring: remove unnecessary to_vvq() call | Date | Mon, 26 Sep 2022 05:11:30 -0400 |
| |
It passes '_vq' to vring_free(), 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: Bo Liu <liubo03@inspur.com> --- drivers/virtio/virtio_ring.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c index 8974c34b40fd..d6d77bf58802 100644 --- a/drivers/virtio/virtio_ring.c +++ b/drivers/virtio/virtio_ring.c @@ -221,7 +221,7 @@ static struct virtqueue *__vring_new_virtqueue(unsigned int index, void (*callback)(struct virtqueue *), const char *name); static struct vring_desc_extra *vring_alloc_desc_extra(unsigned int num); -static void vring_free(struct virtqueue *_vq); +static void vring_free(struct vring_virtqueue *vq); /* * Helpers. @@ -1140,7 +1140,7 @@ static int virtqueue_resize_split(struct virtqueue *_vq, u32 num) if (err) goto err_state_extra; - vring_free(&vq->vq); + vring_free(vq); virtqueue_vring_init_split(&vring_split, vq); @@ -2059,7 +2059,7 @@ static int virtqueue_resize_packed(struct virtqueue *_vq, u32 num) if (err) goto err_state_extra; - vring_free(&vq->vq); + vring_free(vq); virtqueue_vring_init_packed(&vring_packed, !!vq->vq.callback); @@ -2649,10 +2649,8 @@ struct virtqueue *vring_new_virtqueue(unsigned int index, } EXPORT_SYMBOL_GPL(vring_new_virtqueue); -static void vring_free(struct virtqueue *_vq) +static void vring_free(struct vring_virtqueue *vq) { - struct vring_virtqueue *vq = to_vvq(_vq); - if (vq->we_own_ring) { if (vq->packed_ring) { vring_free_queue(vq->vq.vdev, @@ -2693,7 +2691,7 @@ void vring_del_virtqueue(struct virtqueue *_vq) list_del(&_vq->list); spin_unlock(&vq->vq.vdev->vqs_list_lock); - vring_free(_vq); + vring_free(vq); kfree(vq); } -- 2.27.0
| |