XDP has a netlink error message buffer available that should
be used for errors instead of console logging.

Signed-off-by: Stephen Hemminger <step...@networkplumber.org>
---
 drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c | 26 +++++++++----------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c 
b/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
index 0184ef6f05a7..a9f6a3a66b4c 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
@@ -150,19 +150,21 @@ bool bnxt_rx_xdp(struct bnxt *bp, struct 
bnxt_rx_ring_info *rxr, u16 cons,
 }
 
 /* Under rtnl_lock */
-static int bnxt_xdp_set(struct bnxt *bp, struct bpf_prog *prog)
+static int bnxt_xdp_set(struct bnxt *bp, struct bpf_prog *prog,
+                       struct netlink_ext_ack *extack)
 {
        struct net_device *dev = bp->dev;
        int tx_xdp = 0, rc, tc;
        struct bpf_prog *old;
 
        if (prog && bp->dev->mtu > BNXT_MAX_PAGE_MODE_MTU) {
-               netdev_warn(dev, "MTU %d larger than largest XDP supported MTU 
%d.\n",
-                           bp->dev->mtu, BNXT_MAX_PAGE_MODE_MTU);
+               NL_SET_ERR_MSG_MOD(extack,
+                                  "MTU larger than largest XDP supported MTU");
                return -EOPNOTSUPP;
        }
        if (!(bp->flags & BNXT_FLAG_SHARED_RINGS)) {
-               netdev_warn(dev, "ethtool rx/tx channels must be combined to 
support XDP.\n");
+               NL_SET_ERR_MSG_MOD(extack,
+                                  "ethtool rx/tx channels must be combined to 
support XDP");
                return -EOPNOTSUPP;
        }
        if (prog)
@@ -174,7 +176,8 @@ static int bnxt_xdp_set(struct bnxt *bp, struct bpf_prog 
*prog)
        rc = bnxt_check_rings(bp, bp->tx_nr_rings_per_tc, bp->rx_nr_rings,
                              true, tc, tx_xdp);
        if (rc) {
-               netdev_warn(dev, "Unable to reserve enough TX rings to support 
XDP.\n");
+               NL_SET_ERR_MSG_MOD(extack,
+                                  "Unable to reserve enough TX rings to 
support XDP.\n");
                return rc;
        }
        if (netif_running(dev))
@@ -211,19 +214,16 @@ static int bnxt_xdp_set(struct bnxt *bp, struct bpf_prog 
*prog)
 int bnxt_xdp(struct net_device *dev, struct netdev_bpf *xdp)
 {
        struct bnxt *bp = netdev_priv(dev);
-       int rc;
 
        switch (xdp->command) {
        case XDP_SETUP_PROG:
-               rc = bnxt_xdp_set(bp, xdp->prog);
-               break;
+               return bnxt_xdp_set(bp, xdp->prog, xdp->extack);
+
        case XDP_QUERY_PROG:
                xdp->prog_id = bp->xdp_prog ? bp->xdp_prog->aux->id : 0;
-               rc = 0;
-               break;
+               return 0;
        default:
-               rc = -EINVAL;
-               break;
+               NL_SET_ERR_MSG_MOD(xdp->extack, "Unsupported XDP command");
+               return -EINVAL;
        }
-       return rc;
 }
-- 
2.17.1

Reply via email to