]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
gve: rename gve_xdp_xmit to gve_xdp_xmit_gqi
authorJoshua Washington <joshwash@google.com>
Wed, 18 Jun 2025 20:56:11 +0000 (20:56 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 21 Jun 2025 13:26:23 +0000 (14:26 +0100)
In preparation for XDP DQ support, the gve_xdp_xmit callback needs to
be generalized for all queue formats. This patch renames the GQ-specific
function to gve_xdp_xmit_gqi, and introduces a new gve_xdp_xmit callback
which branches on queue format.

Reviewed-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: Joshua Washington <joshwash@google.com>
Signed-off-by: Harshitha Ramamurthy <hramamurthy@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/google/gve/gve.h
drivers/net/ethernet/google/gve/gve_main.c
drivers/net/ethernet/google/gve/gve_tx.c

index 4469442d494005de2b0afd1fef7d8497ed0d789a..de1fc23c44f9ef60bde6ead9add1cedbb656fcec 100644 (file)
@@ -1178,8 +1178,8 @@ void gve_free_queue_page_list(struct gve_priv *priv,
                              u32 id);
 /* tx handling */
 netdev_tx_t gve_tx(struct sk_buff *skb, struct net_device *dev);
-int gve_xdp_xmit(struct net_device *dev, int n, struct xdp_frame **frames,
-                u32 flags);
+int gve_xdp_xmit_gqi(struct net_device *dev, int n, struct xdp_frame **frames,
+                    u32 flags);
 int gve_xdp_xmit_one(struct gve_priv *priv, struct gve_tx_ring *tx,
                     void *data, int len, void *frame_p);
 void gve_xdp_tx_flush(struct gve_priv *priv, u32 xdp_qid);
index 28e4795f5f40addf44de76c7f5f1daab4b1a3dbb..eff970124dbaf9324f70285a58ecd1b38e70a9c2 100644 (file)
@@ -1516,6 +1516,16 @@ out:
        return err;
 }
 
+static int gve_xdp_xmit(struct net_device *dev, int n,
+                       struct xdp_frame **frames, u32 flags)
+{
+       struct gve_priv *priv = netdev_priv(dev);
+
+       if (gve_is_gqi(priv))
+               return gve_xdp_xmit_gqi(dev, n, frames, flags);
+       return -EOPNOTSUPP;
+}
+
 static int gve_xsk_pool_enable(struct net_device *dev,
                               struct xsk_buff_pool *pool,
                               u16 qid)
index 1b40bf0c811a3e6962332b92fbba0c64d440323b..c6ff0968929d61521f0b17fdaae56c053dd2763c 100644 (file)
@@ -823,8 +823,8 @@ static int gve_tx_fill_xdp(struct gve_priv *priv, struct gve_tx_ring *tx,
        return ndescs;
 }
 
-int gve_xdp_xmit(struct net_device *dev, int n, struct xdp_frame **frames,
-                u32 flags)
+int gve_xdp_xmit_gqi(struct net_device *dev, int n, struct xdp_frame **frames,
+                    u32 flags)
 {
        struct gve_priv *priv = netdev_priv(dev);
        struct gve_tx_ring *tx;