]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
eth: ice: drop the dead code related to rss_contexts
authorJakub Kicinski <kuba@kernel.org>
Mon, 7 Jul 2025 18:41:12 +0000 (11:41 -0700)
committerJakub Kicinski <kuba@kernel.org>
Tue, 8 Jul 2025 18:56:40 +0000 (11:56 -0700)
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 7964e7884643 ("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: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250707184115.2285277-3-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/intel/ice/ice_ethtool.c

index ea7e8b879b48d4eeca9d38779157a53d343a781a..e54221fba849526896360296a7d1c3460706315f 100644 (file)
@@ -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,