From: Stephen Rothwell Date: Mon, 31 Jul 2023 02:41:57 +0000 (+1000) Subject: Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=311d1ea6c7214078916046a2f8e3f8304661349b;p=users%2Fwilly%2Fpagecache.git Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git # Conflicts: # drivers/net/virtio_net.c --- 311d1ea6c7214078916046a2f8e3f8304661349b diff --cc drivers/net/virtio_net.c index 1270c8d23463f,d67b36fdba0db..be765290b185a --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@@ -1128,28 -1136,6 +1233,28 @@@ err return NULL; } +static void mergeable_buf_free(struct receive_queue *rq, int num_buf, + struct net_device *dev, + struct virtnet_rq_stats *stats) +{ + struct page *page; + void *buf; + int len; + + while (num_buf-- > 1) { - buf = virtqueue_get_buf(rq->vq, &len); ++ buf = virtnet_rq_get_buf(rq, &len, NULL); + if (unlikely(!buf)) { + pr_debug("%s: rx error: %d buffers missing\n", + dev->name, num_buf); + dev->stats.rx_length_errors++; + break; + } + stats->bytes += len; + page = virt_to_head_page(buf); + put_page(page); + } +} + /* Why not use xdp_build_skb_from_frame() ? * XDP core assumes that xdp frags are PAGE_SIZE in length, while in * virtio-net there are 2 points that do not match its requirements: