]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
virtio_net: big mode skip the unmap check
authorXuan Zhuo <xuanzhuo@linux.alibaba.com>
Sat, 11 May 2024 03:14:02 +0000 (11:14 +0800)
committerJakub Kicinski <kuba@kernel.org>
Tue, 14 May 2024 00:07:41 +0000 (17:07 -0700)
The virtio-net big mode did not enable premapped mode,
so we did not need to check the unmap. And the subsequent
commit will remove the failover code for failing enable
premapped for merge and small mode. So we need to remove
the checking do_dma code in the big mode path.

Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Link: https://lore.kernel.org/r/20240511031404.30903-3-xuanzhuo@linux.alibaba.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/virtio_net.c

index 42da535913ed3bea51b1245fae0e2ac2121c313e..b53016c5e8df1793708d2866f3d370734cb732f9 100644 (file)
@@ -963,7 +963,7 @@ static void virtnet_rq_unmap_free_buf(struct virtqueue *vq, void *buf)
 
        rq = &vi->rq[i];
 
-       if (rq->do_dma)
+       if (!vi->big_packets || vi->mergeable_rx_bufs)
                virtnet_rq_unmap(rq, buf, 0);
 
        virtnet_rq_free_buf(vi, rq, buf);
@@ -2277,7 +2277,7 @@ static int virtnet_receive(struct receive_queue *rq, int budget,
                }
        } else {
                while (packets < budget &&
-                      (buf = virtnet_rq_get_buf(rq, &len, NULL)) != NULL) {
+                      (buf = virtqueue_get_buf(rq->vq, &len)) != NULL) {
                        receive_buf(vi, rq, buf, len, NULL, xdp_xmit, &stats);
                        packets++;
                }