Commit 9c4298b4 authored by Gal Pressman's avatar Gal Pressman Committed by Jakub Kicinski
Browse files

net/mlx5e: Use extack in set coalesce callback



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: default avatarGal Pressman <gal@nvidia.com>
Reviewed-by: default avatarCosmin Ratiu <cratiu@nvidia.com>
Signed-off-by: default avatarTariq Toukan <tariqt@nvidia.com>
Link: https://patch.msgid.link/20240808055927.2059700-9-tariqt@nvidia.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 29a943d7
Loading
Loading
Loading
Loading
+14 −6
Original line number Diff line number Diff line
@@ -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;
	}