On Thu, 17 Jan 2019 20:56:39 +0800
Jason Wang <[email protected]> wrote:
> On 2019/1/17 下午7:20, Toshiaki Makita wrote:
> > put_page() can work as a fallback for freeing xdp_frames, but the
> > appropriate way is to use xdp_return_frame().
> >
> > Fixes: cac320c850ef ("virtio_net: convert to use generic xdp_frame and
> > xdp_return_frame API")
> > Signed-off-by: Toshiaki Makita <[email protected]>
> > ---
> > drivers/net/virtio_net.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> > index ae93f0e..996de69 100644
> > --- a/drivers/net/virtio_net.c
> > +++ b/drivers/net/virtio_net.c
> > @@ -2668,7 +2668,7 @@ static void free_unused_bufs(struct virtnet_info *vi)
> > if (!is_xdp_raw_buffer_queue(vi, i))
> > dev_kfree_skb(buf);
> > else
> > - put_page(virt_to_head_page(buf));
> > + xdp_return_frame(buf);
I assume the is_xdp_raw_buffer_queue() test assures that this void *buf
is a struct xdp_frame.
> > }
> > }
> >
>
>
> Acked-by: Jason Wang <[email protected]>
Acked-by: Jesper Dangaard Brouer <[email protected]>
--
Best regards,
Jesper Dangaard Brouer
MSc.CS, Principal Kernel Engineer at Red Hat
LinkedIn: http://www.linkedin.com/in/brouer