Parav Pandit
2023-Jan-16 20:27 UTC
[PATCH net-next v2] virtio_net: Reuse buffer free function
virtnet_rq_free_unused_buf() helper function to free the buffer already exists. Avoid code duplication by reusing existing function. Reviewed-by: Alexander Duyck <alexanderduyck at fb.com> Reviewed-by: Xuan Zhuo <xuanzhuo at linux.alibaba.com> Signed-off-by: Parav Pandit <parav at nvidia.com> --- drivers/net/virtio_net.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 7723b2a49d8e..31d037df514f 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -1251,13 +1251,7 @@ static void receive_buf(struct virtnet_info *vi, struct receive_queue *rq, if (unlikely(len < vi->hdr_len + ETH_HLEN)) { pr_debug("%s: short packet %i\n", dev->name, len); dev->stats.rx_length_errors++; - if (vi->mergeable_rx_bufs) { - put_page(virt_to_head_page(buf)); - } else if (vi->big_packets) { - give_pages(rq, buf); - } else { - put_page(virt_to_head_page(buf)); - } + virtnet_rq_free_unused_buf(rq->vq, buf); return; } -- 2.26.2
Michael S. Tsirkin
2023-Jan-16 22:13 UTC
[PATCH net-next v2] virtio_net: Reuse buffer free function
On Mon, Jan 16, 2023 at 10:27:08PM +0200, Parav Pandit wrote:> virtnet_rq_free_unused_buf() helper function to free the buffer > already exists. Avoid code duplication by reusing existing function. > > Reviewed-by: Alexander Duyck <alexanderduyck at fb.com> > Reviewed-by: Xuan Zhuo <xuanzhuo at linux.alibaba.com> > Signed-off-by: Parav Pandit <parav at nvidia.com> > --- > drivers/net/virtio_net.c | 8 +------- > 1 file changed, 1 insertion(+), 7 deletions(-) > > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c > index 7723b2a49d8e..31d037df514f 100644 > --- a/drivers/net/virtio_net.c > +++ b/drivers/net/virtio_net.c > @@ -1251,13 +1251,7 @@ static void receive_buf(struct virtnet_info *vi, struct receive_queue *rq, > if (unlikely(len < vi->hdr_len + ETH_HLEN)) { > pr_debug("%s: short packet %i\n", dev->name, len); > dev->stats.rx_length_errors++; > - if (vi->mergeable_rx_bufs) { > - put_page(virt_to_head_page(buf)); > - } else if (vi->big_packets) { > - give_pages(rq, buf); > - } else { > - put_page(virt_to_head_page(buf)); > - } > + virtnet_rq_free_unused_buf(rq->vq, buf); > return; > }Sure. Acked-by: Michael S. Tsirkin <mst at redhat.com> while we are at it how about a patch moving virtnet_rq_free_unused_buf and virtnet_sq_free_unused_buf so we don't need forward declarations? E.g. a good place for virtnet_sq_free_unused_buf is likely after ptr_to_xdp group of functions. For virtnet_rq_free_unused_buf - after give_pages/get_a_page.> > -- > 2.26.2
Jason Wang
2023-Jan-17 03:06 UTC
[PATCH net-next v2] virtio_net: Reuse buffer free function
On Tue, Jan 17, 2023 at 4:27 AM Parav Pandit <parav at nvidia.com> wrote:> > virtnet_rq_free_unused_buf() helper function to free the buffer > already exists. Avoid code duplication by reusing existing function. > > Reviewed-by: Alexander Duyck <alexanderduyck at fb.com> > Reviewed-by: Xuan Zhuo <xuanzhuo at linux.alibaba.com> > Signed-off-by: Parav Pandit <parav at nvidia.com>Acked-by: Jason Wang <jasowang at redhat.com> Thanks> --- > drivers/net/virtio_net.c | 8 +------- > 1 file changed, 1 insertion(+), 7 deletions(-) > > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c > index 7723b2a49d8e..31d037df514f 100644 > --- a/drivers/net/virtio_net.c > +++ b/drivers/net/virtio_net.c > @@ -1251,13 +1251,7 @@ static void receive_buf(struct virtnet_info *vi, struct receive_queue *rq, > if (unlikely(len < vi->hdr_len + ETH_HLEN)) { > pr_debug("%s: short packet %i\n", dev->name, len); > dev->stats.rx_length_errors++; > - if (vi->mergeable_rx_bufs) { > - put_page(virt_to_head_page(buf)); > - } else if (vi->big_packets) { > - give_pages(rq, buf); > - } else { > - put_page(virt_to_head_page(buf)); > - } > + virtnet_rq_free_unused_buf(rq->vq, buf); > return; > } > > -- > 2.26.2 >