On 5/17/18 3:24 AM, Jason Wang wrote: > It looks like we wrongly drop packets after linearizing the packets > during XDP_REDIRECT. > > Please try the patch (but I do spot some other issues, will post a series): > > Thanks > > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c > index f34794a..59702f9 100644 > --- a/drivers/net/virtio_net.c > +++ b/drivers/net/virtio_net.c > @@ -800,7 +800,7 @@ static struct sk_buff *receive_mergeable(struct > net_device *dev, > } > *xdp_xmit = true; > if (unlikely(xdp_page != page)) > - goto err_xdp; > + put_page(page); > rcu_read_unlock(); > goto xdp_xmit; > default:
Yes, that does solve the problem of fragments getting lost.