On Fri, 17 Sep 2021 16:34:06 +0800, Jason Wang <jasowang@xxxxxxxxxx> 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@xxxxxxxxxxxxxxxxx> > Fixes: fb32856b16ad ("virtio-net: page_to_skb() use build_skb when there's sufficient tailroom") > Signed-off-by: Jason Wang <jasowang@xxxxxxxxxx> LGTM Reviewed-by: Xuan Zhuo <xuanzhuo@xxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization