From: Björn Töpel <[email protected]>

With the previous patch, we no longer need the XDP_QUERY_PROG operation, so
remove the handling of that from all drivers.

Signed-off-by: Björn Töpel <[email protected]>
Signed-off-by: Toke Høiland-Jørgensen <[email protected]>
---
 drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c      |    4 ---
 drivers/net/ethernet/cavium/thunder/nicvf_main.c   |    3 ---
 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c   |    3 ---
 drivers/net/ethernet/intel/i40e/i40e_main.c        |    3 ---
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c      |    4 ---
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c  |    4 ---
 drivers/net/ethernet/mellanox/mlx4/en_netdev.c     |   24 --------------------
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c  |   18 ---------------
 .../net/ethernet/netronome/nfp/nfp_net_common.c    |    2 --
 drivers/net/ethernet/qlogic/qede/qede_filter.c     |    3 ---
 drivers/net/netdevsim/bpf.c                        |    2 --
 drivers/net/netdevsim/netdevsim.h                  |    2 +-
 drivers/net/tun.c                                  |   15 -------------
 drivers/net/veth.c                                 |   15 -------------
 drivers/net/virtio_net.c                           |   17 --------------
 include/linux/netdevice.h                          |    3 +--
 16 files changed, 2 insertions(+), 120 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c 
b/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
index 0184ef6f05a7..8b1e77522e18 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
@@ -217,10 +217,6 @@ int bnxt_xdp(struct net_device *dev, struct netdev_bpf 
*xdp)
        case XDP_SETUP_PROG:
                rc = bnxt_xdp_set(bp, xdp->prog);
                break;
-       case XDP_QUERY_PROG:
-               xdp->prog_id = bp->xdp_prog ? bp->xdp_prog->aux->id : 0;
-               rc = 0;
-               break;
        default:
                rc = -EINVAL;
                break;
diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_main.c 
b/drivers/net/ethernet/cavium/thunder/nicvf_main.c
index aa2be4807191..dfe38f64ca12 100644
--- a/drivers/net/ethernet/cavium/thunder/nicvf_main.c
+++ b/drivers/net/ethernet/cavium/thunder/nicvf_main.c
@@ -1892,9 +1892,6 @@ static int nicvf_xdp(struct net_device *netdev, struct 
netdev_bpf *xdp)
        switch (xdp->command) {
        case XDP_SETUP_PROG:
                return nicvf_xdp_setup(nic, xdp->prog);
-       case XDP_QUERY_PROG:
-               xdp->prog_id = nic->xdp_prog ? nic->xdp_prog->aux->id : 0;
-               return 0;
        default:
                return -EINVAL;
        }
diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c 
b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
index 2055c97dc22b..4f96a36f64f9 100644
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
@@ -1763,9 +1763,6 @@ static int dpaa2_eth_xdp(struct net_device *dev, struct 
netdev_bpf *xdp)
        switch (xdp->command) {
        case XDP_SETUP_PROG:
                return setup_xdp(dev, xdp->prog);
-       case XDP_QUERY_PROG:
-               xdp->prog_id = priv->xdp_prog ? priv->xdp_prog->aux->id : 0;
-               break;
        default:
                return -EINVAL;
        }
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c 
b/drivers/net/ethernet/intel/i40e/i40e_main.c
index da62218eb70a..7cd0ccb9ec87 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -12146,9 +12146,6 @@ static int i40e_xdp(struct net_device *dev,
        switch (xdp->command) {
        case XDP_SETUP_PROG:
                return i40e_xdp_setup(vsi, xdp->prog);
-       case XDP_QUERY_PROG:
-               xdp->prog_id = vsi->xdp_prog ? vsi->xdp_prog->aux->id : 0;
-               return 0;
        case XDP_SETUP_XSK_UMEM:
                return i40e_xsk_umem_setup(vsi, xdp->xsk.umem,
                                           xdp->xsk.queue_id);
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c 
b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 60cec3540dd7..fa03dfefd098 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -10289,10 +10289,6 @@ static int ixgbe_xdp(struct net_device *dev, struct 
netdev_bpf *xdp)
        switch (xdp->command) {
        case XDP_SETUP_PROG:
                return ixgbe_xdp_setup(dev, xdp->prog);
-       case XDP_QUERY_PROG:
-               xdp->prog_id = adapter->xdp_prog ?
-                       adapter->xdp_prog->aux->id : 0;
-               return 0;
        case XDP_SETUP_XSK_UMEM:
                return ixgbe_xsk_umem_setup(adapter, xdp->xsk.umem,
                                            xdp->xsk.queue_id);
diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c 
b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
index 49e23afa05a2..75fcc148ed97 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
@@ -4484,10 +4484,6 @@ static int ixgbevf_xdp(struct net_device *dev, struct 
netdev_bpf *xdp)
        switch (xdp->command) {
        case XDP_SETUP_PROG:
                return ixgbevf_xdp_setup(dev, xdp->prog);
-       case XDP_QUERY_PROG:
-               xdp->prog_id = adapter->xdp_prog ?
-                              adapter->xdp_prog->aux->id : 0;
-               return 0;
        default:
                return -EINVAL;
        }
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c 
b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
index c1438ae52a11..8850fc35510a 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
@@ -2883,35 +2883,11 @@ static int mlx4_xdp_set(struct net_device *dev, struct 
bpf_prog *prog)
        return err;
 }
 
-static u32 mlx4_xdp_query(struct net_device *dev)
-{
-       struct mlx4_en_priv *priv = netdev_priv(dev);
-       struct mlx4_en_dev *mdev = priv->mdev;
-       const struct bpf_prog *xdp_prog;
-       u32 prog_id = 0;
-
-       if (!priv->tx_ring_num[TX_XDP])
-               return prog_id;
-
-       mutex_lock(&mdev->state_lock);
-       xdp_prog = rcu_dereference_protected(
-               priv->rx_ring[0]->xdp_prog,
-               lockdep_is_held(&mdev->state_lock));
-       if (xdp_prog)
-               prog_id = xdp_prog->aux->id;
-       mutex_unlock(&mdev->state_lock);
-
-       return prog_id;
-}
-
 static int mlx4_xdp(struct net_device *dev, struct netdev_bpf *xdp)
 {
        switch (xdp->command) {
        case XDP_SETUP_PROG:
                return mlx4_xdp_set(dev, xdp->prog);
-       case XDP_QUERY_PROG:
-               xdp->prog_id = mlx4_xdp_query(dev);
-               return 0;
        default:
                return -EINVAL;
        }
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c 
b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index e08a1eb04e22..67fb1738fd84 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -4293,29 +4293,11 @@ static int mlx5e_xdp_set(struct net_device *netdev, 
struct bpf_prog *prog)
        return err;
 }
 
-static u32 mlx5e_xdp_query(struct net_device *dev)
-{
-       struct mlx5e_priv *priv = netdev_priv(dev);
-       const struct bpf_prog *xdp_prog;
-       u32 prog_id = 0;
-
-       mutex_lock(&priv->state_lock);
-       xdp_prog = priv->channels.params.xdp_prog;
-       if (xdp_prog)
-               prog_id = xdp_prog->aux->id;
-       mutex_unlock(&priv->state_lock);
-
-       return prog_id;
-}
-
 static int mlx5e_xdp(struct net_device *dev, struct netdev_bpf *xdp)
 {
        switch (xdp->command) {
        case XDP_SETUP_PROG:
                return mlx5e_xdp_set(dev, xdp->prog);
-       case XDP_QUERY_PROG:
-               xdp->prog_id = mlx5e_xdp_query(dev);
-               return 0;
        default:
                return -EINVAL;
        }
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c 
b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
index 961cd5e7bf2b..2101328e6446 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
@@ -3478,8 +3478,6 @@ static int nfp_net_xdp(struct net_device *netdev, struct 
netdev_bpf *xdp)
                return nfp_net_xdp_setup_drv(nn, xdp);
        case XDP_SETUP_PROG_HW:
                return nfp_net_xdp_setup_hw(nn, xdp);
-       case XDP_QUERY_PROG:
-               return xdp_attachment_query(&nn->xdp, xdp);
        case XDP_QUERY_PROG_HW:
                return xdp_attachment_query(&nn->xdp_hw, xdp);
        default:
diff --git a/drivers/net/ethernet/qlogic/qede/qede_filter.c 
b/drivers/net/ethernet/qlogic/qede/qede_filter.c
index add922b93d2c..69f4e7d37d01 100644
--- a/drivers/net/ethernet/qlogic/qede/qede_filter.c
+++ b/drivers/net/ethernet/qlogic/qede/qede_filter.c
@@ -1118,9 +1118,6 @@ int qede_xdp(struct net_device *dev, struct netdev_bpf 
*xdp)
        switch (xdp->command) {
        case XDP_SETUP_PROG:
                return qede_xdp_set(edev, xdp->prog);
-       case XDP_QUERY_PROG:
-               xdp->prog_id = edev->xdp_prog ? edev->xdp_prog->aux->id : 0;
-               return 0;
        default:
                return -EINVAL;
        }
diff --git a/drivers/net/netdevsim/bpf.c b/drivers/net/netdevsim/bpf.c
index f92c43453ec6..a6cc8954783d 100644
--- a/drivers/net/netdevsim/bpf.c
+++ b/drivers/net/netdevsim/bpf.c
@@ -547,8 +547,6 @@ int nsim_bpf(struct net_device *dev, struct netdev_bpf *bpf)
        ASSERT_RTNL();
 
        switch (bpf->command) {
-       case XDP_QUERY_PROG:
-               return xdp_attachment_query(&ns->xdp, bpf);
        case XDP_QUERY_PROG_HW:
                return xdp_attachment_query(&ns->xdp_hw, bpf);
        case XDP_SETUP_PROG:
diff --git a/drivers/net/netdevsim/netdevsim.h 
b/drivers/net/netdevsim/netdevsim.h
index 384c254fafc5..c169477d1f5d 100644
--- a/drivers/net/netdevsim/netdevsim.h
+++ b/drivers/net/netdevsim/netdevsim.h
@@ -122,7 +122,7 @@ static inline void nsim_bpf_uninit(struct netdevsim *ns)
 
 static inline int nsim_bpf(struct net_device *dev, struct netdev_bpf *bpf)
 {
-       return bpf->command == XDP_QUERY_PROG ? 0 : -EOPNOTSUPP;
+       return -EOPNOTSUPP;
 }
 
 static inline int nsim_bpf_disable_tc(struct netdevsim *ns)
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index 24d0220b9ba0..c81610802354 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -1229,26 +1229,11 @@ static int tun_xdp_set(struct net_device *dev, struct 
bpf_prog *prog,
        return 0;
 }
 
-static u32 tun_xdp_query(struct net_device *dev)
-{
-       struct tun_struct *tun = netdev_priv(dev);
-       const struct bpf_prog *xdp_prog;
-
-       xdp_prog = rtnl_dereference(tun->xdp_prog);
-       if (xdp_prog)
-               return xdp_prog->aux->id;
-
-       return 0;
-}
-
 static int tun_xdp(struct net_device *dev, struct netdev_bpf *xdp)
 {
        switch (xdp->command) {
        case XDP_SETUP_PROG:
                return tun_xdp_set(dev, xdp->prog, xdp->extack);
-       case XDP_QUERY_PROG:
-               xdp->prog_id = tun_xdp_query(dev);
-               return 0;
        default:
                return -EINVAL;
        }
diff --git a/drivers/net/veth.c b/drivers/net/veth.c
index 569e87a51a33..33ccadbea577 100644
--- a/drivers/net/veth.c
+++ b/drivers/net/veth.c
@@ -1108,26 +1108,11 @@ static int veth_xdp_set(struct net_device *dev, struct 
bpf_prog *prog,
        return err;
 }
 
-static u32 veth_xdp_query(struct net_device *dev)
-{
-       struct veth_priv *priv = netdev_priv(dev);
-       const struct bpf_prog *xdp_prog;
-
-       xdp_prog = priv->_xdp_prog;
-       if (xdp_prog)
-               return xdp_prog->aux->id;
-
-       return 0;
-}
-
 static int veth_xdp(struct net_device *dev, struct netdev_bpf *xdp)
 {
        switch (xdp->command) {
        case XDP_SETUP_PROG:
                return veth_xdp_set(dev, xdp->prog, xdp->extack);
-       case XDP_QUERY_PROG:
-               xdp->prog_id = veth_xdp_query(dev);
-               return 0;
        default:
                return -EINVAL;
        }
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index ba246fc475ae..2009a23d57d7 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -2525,28 +2525,11 @@ static int virtnet_xdp_set(struct net_device *dev, 
struct bpf_prog *prog,
        return err;
 }
 
-static u32 virtnet_xdp_query(struct net_device *dev)
-{
-       struct virtnet_info *vi = netdev_priv(dev);
-       const struct bpf_prog *xdp_prog;
-       int i;
-
-       for (i = 0; i < vi->max_queue_pairs; i++) {
-               xdp_prog = rtnl_dereference(vi->rq[i].xdp_prog);
-               if (xdp_prog)
-                       return xdp_prog->aux->id;
-       }
-       return 0;
-}
-
 static int virtnet_xdp(struct net_device *dev, struct netdev_bpf *xdp)
 {
        switch (xdp->command) {
        case XDP_SETUP_PROG:
                return virtnet_xdp_set(dev, xdp->prog, xdp->extack);
-       case XDP_QUERY_PROG:
-               xdp->prog_id = virtnet_xdp_query(dev);
-               return 0;
        default:
                return -EINVAL;
        }
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 68d4bbc44c63..db978850bf70 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -864,7 +864,6 @@ enum bpf_netdev_command {
         */
        XDP_SETUP_PROG,
        XDP_SETUP_PROG_HW,
-       XDP_QUERY_PROG,
        XDP_QUERY_PROG_HW,
        /* BPF program for offload callbacks, invoked at program load time. */
        BPF_OFFLOAD_MAP_ALLOC,
@@ -885,7 +884,7 @@ struct netdev_bpf {
                        struct bpf_prog *prog;
                        struct netlink_ext_ack *extack;
                };
-               /* XDP_QUERY_PROG, XDP_QUERY_PROG_HW */
+               /* XDP_QUERY_PROG_HW */
                struct {
                        u32 prog_id;
                        /* flags with which program was installed */

Reply via email to