Commit be78c83a authored by Jakub Kicinski's avatar Jakub Kicinski
Browse files

eth: ice: drop the dead code related to rss_contexts



ICE appears to have some odd form of rss_context use plumbed
in for .get_rxfh. The .set_rxfh side does not support creating
contexts, however, so this must be dead code. For at least a year
now (since commit 7964e788 ("net: ethtool: use the tracking
array for get_rxfh on custom RSS contexts")) we have not been
calling .get_rxfh with a non-zero rss_context. We just get
the info from the RSS XArray under dev->ethtool.

Remove what must be dead code in the driver, clear the support flags.

Reviewed-by: default avatarSimon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250707184115.2285277-3-kuba@kernel.org


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 62e01d8c
Loading
Loading
Loading
Loading
+3 −25
Original line number Diff line number Diff line
@@ -3591,11 +3591,10 @@ static int
ice_get_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh)
{
	struct ice_netdev_priv *np = netdev_priv(netdev);
	u32 rss_context = rxfh->rss_context;
	struct ice_vsi *vsi = np->vsi;
	struct ice_pf *pf = vsi->back;
	u16 qcount, offset;
	int err, num_tc, i;
	int err, i;
	u8 *lut;

	if (!test_bit(ICE_FLAG_RSS_ENA, pf->flags)) {
@@ -3603,24 +3602,8 @@ ice_get_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh)
		return -EOPNOTSUPP;
	}

	if (rss_context && !ice_is_adq_active(pf)) {
		netdev_err(netdev, "RSS context cannot be non-zero when ADQ is not configured.\n");
		return -EINVAL;
	}

	qcount = vsi->mqprio_qopt.qopt.count[rss_context];
	offset = vsi->mqprio_qopt.qopt.offset[rss_context];

	if (rss_context && ice_is_adq_active(pf)) {
		num_tc = vsi->mqprio_qopt.qopt.num_tc;
		if (rss_context >= num_tc) {
			netdev_err(netdev, "RSS context:%d  > num_tc:%d\n",
				   rss_context, num_tc);
			return -EINVAL;
		}
		/* Use channel VSI of given TC */
		vsi = vsi->tc_map_vsi[rss_context];
	}
	qcount = vsi->mqprio_qopt.qopt.count[0];
	offset = vsi->mqprio_qopt.qopt.offset[0];

	rxfh->hfunc = ETH_RSS_HASH_TOP;
	if (vsi->rss_hfunc == ICE_AQ_VSI_Q_OPT_RSS_HASH_SYM_TPLZ)
@@ -3680,9 +3663,6 @@ ice_set_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh,
	    rxfh->hfunc != ETH_RSS_HASH_TOP)
		return -EOPNOTSUPP;

	if (rxfh->rss_context)
		return -EOPNOTSUPP;

	if (!test_bit(ICE_FLAG_RSS_ENA, pf->flags)) {
		/* RSS not supported return error here */
		netdev_warn(netdev, "RSS is not configured on this VSI!\n");
@@ -4750,12 +4730,10 @@ static int ice_repr_ethtool_reset(struct net_device *dev, u32 *flags)
}

static const struct ethtool_ops ice_ethtool_ops = {
	.cap_rss_ctx_supported  = true,
	.supported_coalesce_params = ETHTOOL_COALESCE_USECS |
				     ETHTOOL_COALESCE_USE_ADAPTIVE |
				     ETHTOOL_COALESCE_RX_USECS_HIGH,
	.supported_input_xfrm	= RXH_XFRM_SYM_XOR,
	.rxfh_per_ctx_key	= true,
	.get_link_ksettings	= ice_get_link_ksettings,
	.set_link_ksettings	= ice_set_link_ksettings,
	.get_fec_stats		= ice_get_fec_stats,