]> www.infradead.org Git - users/willy/pagecache.git/commitdiff
Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git
authorStephen Rothwell <sfr@canb.auug.org.au>
Mon, 31 Jul 2023 02:41:57 +0000 (12:41 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Mon, 31 Jul 2023 02:41:57 +0000 (12:41 +1000)
# Conflicts:
# drivers/net/virtio_net.c

1  2 
drivers/net/virtio_net.c
drivers/vhost/vdpa.c

index 1270c8d23463fa35849dd290b7df7496198aaf9b,d67b36fdba0db0122034e1e0324a8270e437d442..be765290b185ada82d1c7c0ed0b5338a1decadf4
        return NULL;
  }
  
-               buf = virtqueue_get_buf(rq->vq, &len);
 +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 = 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:
Simple merge