Re: [PATCH net] virtio-net: fix pages leaking when building skb in big mode
From: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Date: 2021-09-18 01:56:51
Also in:
lkml, netdev
From: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Date: 2021-09-18 01:56:51
Also in:
lkml, netdev
On Fri, 17 Sep 2021 16:34:06 +0800, Jason Wang [off-list ref] wrote:
We try to use build_skb() if we had sufficient tailroom. But we forget
to release the unused pages chained via private in big mode which will
leak pages. Fixing this by release the pages after building the skb in
big mode.
Cc: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Fixes: fb32856b16ad ("virtio-net: page_to_skb() use build_skb when there's sufficient tailroom")
Signed-off-by: Jason Wang <jasowang@redhat.com>LGTM Reviewed-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com> Thanks.
--- drivers/net/virtio_net.c | 4 ++++ 1 file changed, 4 insertions(+)diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 271d38c1d9f8..79bd2585ec6b 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c@@ -423,6 +423,10 @@ static struct sk_buff *page_to_skb(struct virtnet_info *vi, skb_reserve(skb, p - buf); skb_put(skb, len); + + page = (struct page *)page->private; + if (page) + give_pages(rq, page); goto ok; } --2.25.1
_______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization