Commit a7f6f56f authored by Jakub Kicinski's avatar Jakub Kicinski Committed by David S. Miller
Browse files

eth: mlx5: allow disabling queues when RSS contexts exist



Since commit 24ac7e54 ("ethtool: use the rss context XArray
in ring deactivation safety-check") core will prevent queues from
being disabled while being used by additional RSS contexts.
The safety check is no longer necessary, and core will do a more
accurate job of only rejecting changes which can actually break
things.

Reviewed-by: default avatarGal Pressman <gal@nvidia.com>
Reviewed-by: default avatarJoe Damato <jdamato@fastly.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f203fd85
Loading
Loading
Loading
Loading
+0 −12
Original line number Diff line number Diff line
@@ -433,7 +433,6 @@ int mlx5e_ethtool_set_channels(struct mlx5e_priv *priv,
	unsigned int count = ch->combined_count;
	struct mlx5e_params new_params;
	bool arfs_enabled;
	int rss_cnt;
	bool opened;
	int err = 0;

@@ -487,17 +486,6 @@ int mlx5e_ethtool_set_channels(struct mlx5e_priv *priv,
		goto out;
	}

	/* Don't allow changing the number of channels if non-default RSS contexts exist,
	 * the kernel doesn't protect against set_channels operations that break them.
	 */
	rss_cnt = mlx5e_rx_res_rss_cnt(priv->rx_res) - 1;
	if (rss_cnt) {
		err = -EINVAL;
		netdev_err(priv->netdev, "%s: Non-default RSS contexts exist (%d), cannot change the number of channels\n",
			   __func__, rss_cnt);
		goto out;
	}

	/* Don't allow changing the number of channels if MQPRIO mode channel offload is active,
	 * because it defines a partition over the channels queues.
	 */