net/mlx5e: Use extack in set coalesce callback
authorGal Pressman <gal@nvidia.com>
Thu, 8 Aug 2024 05:59:24 +0000 (08:59 +0300)
committerJakub Kicinski <kuba@kernel.org>
Sat, 10 Aug 2024 05:13:15 +0000 (22:13 -0700)
In case of errors in set coalesce, reflect it through extack instead of
a dmesg print.
While at it, make the messages more human friendly.

Signed-off-by: Gal Pressman <gal@nvidia.com>
Reviewed-by: Cosmin Ratiu <cratiu@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Link: https://patch.msgid.link/20240808055927.2059700-9-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c

index 9760215926db5b43cfa17c6f494855428e9c4295..c14a5542ae9c90eb632685960bda07e9da2936d6 100644 (file)
@@ -699,26 +699,34 @@ int mlx5e_ethtool_set_coalesce(struct mlx5e_priv *priv,
        int err = 0;
 
        if (!MLX5_CAP_GEN(mdev, cq_moderation) ||
-           !MLX5_CAP_GEN(mdev, cq_period_mode_modify))
+           !MLX5_CAP_GEN(mdev, cq_period_mode_modify)) {
+               NL_SET_ERR_MSG_MOD(extack, "CQ moderation not supported");
                return -EOPNOTSUPP;
+       }
 
        if (coal->tx_coalesce_usecs > MLX5E_MAX_COAL_TIME ||
            coal->rx_coalesce_usecs > MLX5E_MAX_COAL_TIME) {
-               netdev_info(priv->netdev, "%s: maximum coalesce time supported is %lu usecs\n",
-                           __func__, MLX5E_MAX_COAL_TIME);
+               NL_SET_ERR_MSG_FMT_MOD(
+                       extack,
+                       "Max coalesce time %lu usecs, tx-usecs (%u) rx-usecs (%u)",
+                       MLX5E_MAX_COAL_TIME, coal->tx_coalesce_usecs,
+                       coal->rx_coalesce_usecs);
                return -ERANGE;
        }
 
        if (coal->tx_max_coalesced_frames > MLX5E_MAX_COAL_FRAMES ||
            coal->rx_max_coalesced_frames > MLX5E_MAX_COAL_FRAMES) {
-               netdev_info(priv->netdev, "%s: maximum coalesced frames supported is %lu\n",
-                           __func__, MLX5E_MAX_COAL_FRAMES);
+               NL_SET_ERR_MSG_FMT_MOD(
+                       extack,
+                       "Max coalesce frames %lu, tx-frames (%u) rx-frames (%u)",
+                       MLX5E_MAX_COAL_FRAMES, coal->tx_max_coalesced_frames,
+                       coal->rx_max_coalesced_frames);
                return -ERANGE;
        }
 
        if ((kernel_coal->use_cqe_mode_rx || kernel_coal->use_cqe_mode_tx) &&
            !MLX5_CAP_GEN(priv->mdev, cq_period_start_from_cqe)) {
-               NL_SET_ERR_MSG_MOD(extack, "cqe_mode_rx/tx is not supported on this device");
+               NL_SET_ERR_MSG_MOD(extack, "cqe-mode-rx/tx is not supported on this device");
                return -EOPNOTSUPP;
        }