This patch:
  - Change trace_xdp_hook_exception to trace_xdp_exception
  - Remove XDP_SETUP_PROG and XDP_QUERY_PROG constants
  - Remove bpf_warn_invalid_xdp_action

Signed-off-by: Tom Herbert <t...@herbertland.com>
---
 drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c      |  4 +--
 drivers/net/ethernet/mellanox/mlx4/en_rx.c         |  4 +--
 drivers/net/ethernet/mellanox/mlx5/core/en_rx.c    |  4 +--
 .../net/ethernet/netronome/nfp/nfp_net_common.c    |  8 +++---
 drivers/net/ethernet/qlogic/qede/qede_fp.c         |  6 ++---
 drivers/net/virtio_net.c                           |  8 +++---
 include/linux/filter.h                             |  1 -
 include/linux/netdevice.h                          | 15 -----------
 include/trace/events/xdp.h                         | 29 ----------------------
 kernel/bpf/core.c                                  |  1 -
 net/core/filter.c                                  |  6 -----
 11 files changed, 16 insertions(+), 70 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c 
b/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
index 3cfdc94..e894b67 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
@@ -134,7 +134,7 @@ bool bnxt_rx_xdp(struct bnxt *bp, struct bnxt_rx_ring_info 
*rxr, u16 cons,
 
        case XDP_TX:
                if (tx_avail < 2) {
-                       trace_xdp_hook_exception(bp->dev, last_hook, act);
+                       trace_xdp_exception(bp->dev, last_hook, act);
                        bnxt_reuse_rx_data(rxr, cons, page);
                        return true;
                }
@@ -150,7 +150,7 @@ bool bnxt_rx_xdp(struct bnxt *bp, struct bnxt_rx_ring_info 
*rxr, u16 cons,
                xdp_warn_invalid_action(act);
                /* Fall thru */
        case XDP_ABORTED:
-               trace_xdp_hook_exception(bp->dev, last_hook, act);
+               trace_xdp_exception(bp->dev, last_hook, act);
                /* Fall thru */
        case XDP_DROP:
                bnxt_reuse_rx_data(rxr, cons, page);
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_rx.c 
b/drivers/net/ethernet/mellanox/mlx4/en_rx.c
index a8fddc0..d8648fe 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_rx.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_rx.c
@@ -927,12 +927,12 @@ int mlx4_en_process_rx_cq(struct net_device *dev, struct 
mlx4_en_cq *cq, int bud
                                                        length, cq->ring,
                                                        &doorbell_pending)))
                                        goto consumed;
-                               trace_xdp_hook_exception(dev, last_hook, act);
+                               trace_xdp_exception(dev, last_hook, act);
                                goto xdp_drop_no_cnt; /* Drop on xmit failure */
                        default:
                                xdp_warn_invalid_action(act);
                        case XDP_ABORTED:
-                               trace_xdp_hook_exception(dev, last_hook, act);
+                               trace_xdp_exception(dev, last_hook, act);
                        case XDP_DROP:
                                ring->xdp_drop++;
 xdp_drop_no_cnt:
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c 
b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
index 50ab4b9..1be1eef 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
@@ -740,12 +740,12 @@ static inline int mlx5e_xdp_handle(struct mlx5e_rq *rq,
                return false;
        case XDP_TX:
                if (unlikely(!mlx5e_xmit_xdp_frame(rq, di, &xdp)))
-                       trace_xdp_hook_exception(rq->netdev, last_hook, act);
+                       trace_xdp_exception(rq->netdev, last_hook, act);
                return true;
        default:
                xdp_warn_invalid_action(act);
        case XDP_ABORTED:
-               trace_xdp_hook_exception(rq->netdev, last_hook, act);
+               trace_xdp_exception(rq->netdev, last_hook, act);
        case XDP_DROP:
                rq->stats.xdp_drop++;
                mlx5e_page_release(rq, di, true);
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c 
b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
index 2dee867..381f6be 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
@@ -1613,15 +1613,13 @@ static int nfp_net_rx(struct nfp_net_rx_ring *rx_ring, 
int budget)
                                if (unlikely(!nfp_net_tx_xdp_buf(nn, rx_ring,
                                                                 tx_ring, rxbuf,
                                                                 pkt_off, 
pkt_len)))
-                                       trace_xdp_hook_exception(nn->netdev,
-                                                                last_hook,
-                                                                act);
+                                       trace_xdp_exception(nn->netdev,
+                                                           last_hook, act);
                                continue;
                        default:
                                xdp_warn_invalid_action(act);
                        case XDP_ABORTED:
-                               trace_xdp_hook_exception(nn->netdev, last_hook,
-                                                        act);
+                               trace_xdp_exception(nn->netdev, last_hook, act);
                        case XDP_DROP:
                                nfp_net_rx_give_one(rx_ring, rxbuf->frag,
                                                    rxbuf->dma_addr);
diff --git a/drivers/net/ethernet/qlogic/qede/qede_fp.c 
b/drivers/net/ethernet/qlogic/qede/qede_fp.c
index af885c3..f2800e3 100644
--- a/drivers/net/ethernet/qlogic/qede/qede_fp.c
+++ b/drivers/net/ethernet/qlogic/qede/qede_fp.c
@@ -1021,7 +1021,7 @@ static bool qede_rx_xdp(struct qede_dev *edev,
                /* We need the replacement buffer before transmit. */
                if (qede_alloc_rx_buffer(rxq, true)) {
                        qede_recycle_rx_bd_ring(rxq, 1);
-                       trace_xdp_hook_exception(edev->ndev, last_hook, act);
+                       trace_xdp_exception(edev->ndev, last_hook, act);
                        goto out;
                }
 
@@ -1032,7 +1032,7 @@ static bool qede_rx_xdp(struct qede_dev *edev,
                        dma_unmap_page(rxq->dev, bd->mapping,
                                       PAGE_SIZE, DMA_BIDIRECTIONAL);
                        __free_page(bd->data);
-                       trace_xdp_hook_exception(edev->ndev, last_hook, act);
+                       trace_xdp_exception(edev->ndev, last_hook, act);
                }
 
                /* Regardless, we've consumed an Rx BD */
@@ -1042,7 +1042,7 @@ static bool qede_rx_xdp(struct qede_dev *edev,
        default:
                xdp_warn_invalid_action(act);
        case XDP_ABORTED:
-               trace_xdp_hook_exception(edev->ndev, last_hook, act);
+               trace_xdp_exception(edev->ndev, last_hook, act);
        case XDP_DROP:
                qede_recycle_rx_bd_ring(rxq, cqe->bd_num);
        }
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index e8b1747..bd746e1 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -440,13 +440,13 @@ static struct sk_buff *receive_small(struct net_device 
*dev,
                        break;
                case XDP_TX:
                        if (unlikely(!virtnet_xdp_xmit(vi, rq, &xdp, skb)))
-                               trace_xdp_hook_exception(vi->dev, last_hook, 
act);
+                               trace_xdp_exception(vi->dev, last_hook, act);
                        rcu_read_unlock();
                        goto xdp_xmit;
                default:
                        xdp_warn_invalid_action(act);
                case XDP_ABORTED:
-                       trace_xdp_hook_exception(vi->dev, last_hook, act);
+                       trace_xdp_exception(vi->dev, last_hook, act);
                case XDP_DROP:
                        goto err_xdp;
                }
@@ -620,7 +620,7 @@ static struct sk_buff *receive_mergeable(struct net_device 
*dev,
                        break;
                case XDP_TX:
                        if (unlikely(!virtnet_xdp_xmit(vi, rq, &xdp, data)))
-                               trace_xdp_hook_exception(vi->dev, last_hook, 
act);
+                               trace_xdp_exception(vi->dev, last_hook, act);
                        ewma_pkt_len_add(&rq->mrg_avg_pkt_len, len);
                        if (unlikely(xdp_page != page))
                                goto err_xdp;
@@ -629,7 +629,7 @@ static struct sk_buff *receive_mergeable(struct net_device 
*dev,
                default:
                        xdp_warn_invalid_action(act);
                case XDP_ABORTED:
-                       trace_xdp_hook_exception(vi->dev, last_hook, act);
+                       trace_xdp_exception(vi->dev, last_hook, act);
                case XDP_DROP:
                        if (unlikely(xdp_page != page))
                                __free_pages(xdp_page, 0);
diff --git a/include/linux/filter.h b/include/linux/filter.h
index bb9f2f2..cb98f61 100644
--- a/include/linux/filter.h
+++ b/include/linux/filter.h
@@ -607,7 +607,6 @@ bool bpf_helper_changes_pkt_data(void *func);
 
 struct bpf_prog *bpf_patch_insn_single(struct bpf_prog *prog, u32 off,
                                       const struct bpf_insn *patch, u32 len);
-void bpf_warn_invalid_xdp_action(u32 act);
 
 #ifdef CONFIG_BPF_JIT
 extern int bpf_jit_enable;
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 2404e76..63c16aa 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -810,18 +810,6 @@ struct tc_to_netdev {
  * to the netdevice through the xdp op.
  */
 enum xdp_netdev_command {
-       /* Set or clear a bpf program used in the earliest stages of packet
-        * rx. The prog will have been loaded as BPF_PROG_TYPE_XDP. The callee
-        * is responsible for calling bpf_prog_put on any old progs that are
-        * stored. In case of error, the callee need not release the new prog
-        * reference, but on success it takes ownership and must bpf_prog_put
-        * when it is no longer used.
-        */
-       XDP_SETUP_PROG,
-       /* Check if a bpf program is set on the device.  The callee should
-        * return true if a program is currently attached and running.
-        */
-       XDP_QUERY_PROG,
        /* Initialize device to use XDP. Called when first XDP program is
         * registered on a device (including on a NAPI instance).
         */
@@ -839,11 +827,8 @@ enum xdp_netdev_command {
 struct netdev_xdp {
        enum xdp_netdev_command command;
        union {
-               /* XDP_SETUP_PROG */
                /* XDP_CHECK_BPF_PROG */
                struct bpf_prog *prog;
-               /* XDP_QUERY_PROG */
-               bool prog_attached;
        };
 };
 
diff --git a/include/trace/events/xdp.h b/include/trace/events/xdp.h
index 3a40c6e..d225de6 100644
--- a/include/trace/events/xdp.h
+++ b/include/trace/events/xdp.h
@@ -26,35 +26,6 @@ __XDP_ACT_MAP(__XDP_ACT_TP_FN)
 TRACE_EVENT(xdp_exception,
 
        TP_PROTO(const struct net_device *dev,
-                const struct bpf_prog *xdp, u32 act),
-
-       TP_ARGS(dev, xdp, act),
-
-       TP_STRUCT__entry(
-               __string(name, dev->name)
-               __array(u8, prog_tag, 8)
-               __field(u32, act)
-       ),
-
-       TP_fast_assign(
-               BUILD_BUG_ON(sizeof(__entry->prog_tag) != sizeof(xdp->tag));
-               memcpy(__entry->prog_tag, xdp->tag, sizeof(xdp->tag));
-               __assign_str(name, dev->name);
-               __entry->act = act;
-       ),
-
-       TP_printk("prog=%s device=%s action=%s",
-                 __print_hex_str(__entry->prog_tag, 8),
-                 __get_str(name),
-                 __print_symbolic(__entry->act, __XDP_ACT_SYM_TAB))
-);
-
-/* Temporaray trace function. This will be renamed to xdp_exception after all
- * the calling drivers have been patched.
- */
-TRACE_EVENT(xdp_hook_exception,
-
-       TP_PROTO(const struct net_device *dev,
                 const struct xdp_hook *hook, u32 act),
 
        TP_ARGS(dev, hook, act),
diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c
index b80a589..fddd76b 100644
--- a/kernel/bpf/core.c
+++ b/kernel/bpf/core.c
@@ -1179,7 +1179,6 @@ int __weak skb_copy_bits(const struct sk_buff *skb, int 
offset, void *to,
 #include <linux/bpf_trace.h>
 
 EXPORT_TRACEPOINT_SYMBOL_GPL(xdp_exception);
-EXPORT_TRACEPOINT_SYMBOL_GPL(xdp_hook_exception);
 
 EXPORT_TRACEPOINT_SYMBOL_GPL(bpf_prog_get_type);
 EXPORT_TRACEPOINT_SYMBOL_GPL(bpf_prog_put_rcu);
diff --git a/net/core/filter.c b/net/core/filter.c
index 8c01157..d7735dd 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -2991,12 +2991,6 @@ static bool xdp_is_valid_access(int off, int size,
        return __is_valid_xdp_access(off, size);
 }
 
-void bpf_warn_invalid_xdp_action(u32 act)
-{
-       WARN_ONCE(1, "Illegal XDP return value %u, expect packet loss\n", act);
-}
-EXPORT_SYMBOL_GPL(bpf_warn_invalid_xdp_action);
-
 static u32 bpf_convert_ctx_access(enum bpf_access_type type,
                                  const struct bpf_insn *si,
                                  struct bpf_insn *insn_buf,
-- 
2.9.3

Reply via email to