From: Stephen Hemminger <step...@networkplumber.org> XDP errors should be reported via extack (back to command) rather than on console.
Signed-off-by: Stephen Hemminger <step...@networkplumber.org> --- drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c index c1438ae52a11..72fb5570df20 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c @@ -2779,7 +2779,8 @@ static int mlx4_en_set_tx_maxrate(struct net_device *dev, int queue_index, u32 m return err; } -static int mlx4_xdp_set(struct net_device *dev, struct bpf_prog *prog) +static int mlx4_xdp_set(struct net_device *dev, struct bpf_prog *prog, + struct netlink_ext_ack *extack) { struct mlx4_en_priv *priv = netdev_priv(dev); struct mlx4_en_dev *mdev = priv->mdev; @@ -2816,8 +2817,10 @@ static int mlx4_xdp_set(struct net_device *dev, struct bpf_prog *prog) return 0; } - if (!mlx4_en_check_xdp_mtu(dev, dev->mtu)) + if (!mlx4_en_check_xdp_mtu(dev, dev->mtu)) { + NL_SET_ERR_MSG(extack, "MTU exceeds support XDP maximum"); return -EOPNOTSUPP; + } tmp = kzalloc(sizeof(*tmp), GFP_KERNEL); if (!tmp) @@ -2870,8 +2873,8 @@ static int mlx4_xdp_set(struct net_device *dev, struct bpf_prog *prog) if (port_up) { err = mlx4_en_start_port(dev); if (err) { - en_err(priv, "Failed starting port %d for XDP change\n", - priv->port); + NL_SET_ERR_MSG(extack, + "Failed starting port for XDP change"); queue_work(mdev->workqueue, &priv->watchdog_task); } } @@ -2908,11 +2911,12 @@ 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); + return mlx4_xdp_set(dev, xdp->prog, xdp->extack); case XDP_QUERY_PROG: xdp->prog_id = mlx4_xdp_query(dev); return 0; default: + NL_SET_ERR_MSG(xdp->extack, "Unsupported XDP command"); return -EINVAL; } } -- 2.17.1