From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 5268BC9832F for ; Sat, 26 Sep 2026 18:42:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:Message-ID:References:In-Reply-To:Subject:Cc:To:From:Date: MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=iL7bExJVs925q9yLa7sDRxI7vyv/YZQ4FfCbe5s6qaw=; b=SFZZW3ampQyZDTPimQ01c1g3mI hq3ybHU3qAvhjTenhM6+mBv99iFPY5/CDnxsEjbhQlH1r5juPensHHTAgFPgbxQiF6p4eYWlBdZgn HmQBQLdX58H3o2wTr8hO3kHSceq270n07PRHo3EvLJeEXk6X0GR4OJiY9zKEpmjGpMBg3ybZQx/p3 iKXoavyJYZPXhy8RRx3gNi6P3rPeiVCuc3dOa0L+sOn4qGH0188lGDDr1DuBmEB6hv7OhqHJlted1 d3Z2+FVNadde3Iuo9jVCsae5VSzFQUmdc29h1Qqh1UMf9ehMMSegmZ/l249AD3dX9HrPJTldq9r7U GkneoTNA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xAXLj-0000000Fiid-21XQ; Sat, 26 Sep 2026 18:42:15 +0000 Received: from mail.tipi-net.de ([194.13.80.246]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xAXLg-0000000Fii9-0Vn3 for linux-arm-kernel@lists.infradead.org; Sat, 26 Sep 2026 18:42:14 +0000 Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 09A4AA4AA2; Sat, 26 Sep 2026 20:41:55 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tipi-net.de; s=dkim; t=1790448121; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=iL7bExJVs925q9yLa7sDRxI7vyv/YZQ4FfCbe5s6qaw=; b=1dsdev+JmRZnw3115yp6qfis+T3iSQGzi3JYZ/7T6qiCS/Wsv/VVMsrvfWvE9xE5y19uLk z9ze0EH3Kc4/u+mxFNkI8mfo8/D6bbAvdLqKZCDtw2XGmkk+5oiBjRXMCI5svDDjOJjBxr +/PP5B87RQGztnx+m1pCJNAYyDzH29dHMRkAyraodZdGodWR2StIsLmwj+nYfvyEsH+NjU xQCDQHYQySYJUm4uVbDeqJclmabSctGSqxeEs168ouEHRDtBFVZIpIIQso4liqOX+h9Fas 73m90TEPNJNvyCDwPyU3ag942wotJxybVa1N67ueMki1Nj5v3FZDXRf0boLmew== MIME-Version: 1.0 Date: Sat, 26 Sep 2026 20:41:55 +0200 From: Nicolai Buchwitz To: Maxime Chevallier Cc: Andrew Lunn , Jakub Kicinski , davem@davemloft.net, Eric Dumazet , Paolo Abeni , Simon Horman , Maxime Coquelin , Alexandre Torgue , Russell King , Jitendra Vegiraju , thomas.petazzoni@bootlin.com, =?UTF-8?Q?Alexis_Lothor=C3=A9?= , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-stm32@st-md-mailman.stormreply.com Subject: Re: [PATCH net] net: stmmac: Don't set or get RSS parameters when not supported In-Reply-To: <20260926093343.292181-1-maxime.chevallier@bootlin.com> References: <20260926093343.292181-1-maxime.chevallier@bootlin.com> Message-ID: <250ecb58e80b191865bcf03f7146f7c2@tipi-net.de> X-Sender: nb@tipi-net.de Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit X-Last-TLS-Session-Version: TLSv1.3 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260926_114212_321927_BD3CC511 X-CRM114-Status: GOOD ( 25.24 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Maxime On 26.9.2026 11:33, Maxime Chevallier wrote: > The RSS kselftests fail on stmmac, and this is partly due to the driver > reporting bogus data for the RSS ops : > > - ethtool -x reports an indirection table and a key while the hardware > doesn't have any of that > - ethtool -X fails with -EINVAL. > > Let's return early in the rss ops if we know the hardware and platform > don't support RSS. > > Note that RSS is currently not supported on any devices upstream, so > code that was already useless is now effectively dead. It has been the > case since 2019 when the code was added, as platforms need to set > rss_en > in their plat data, and no glue ever did that. > > Russell King ran a poll in february 2026 [1] asking if the code should > be dropped, without any reply going in either direction. > > Jitendra Vegiraju from Broadcom sent 9 iterations of a Broadcom PCIe > glue > driver [2] that actually sets rss_en = 1, so there's some hope that > this > may be used in the future. > > [1] : > https://lore.kernel.org/netdev/aYd4BkAeNW6d0iIC@shell.armlinux.org.uk/ > [2] : > https://lore.kernel.org/netdev/20260402213629.1996133-1-jitendra.vegiraju@broadcom.com/ > > Fixes: 76067459c686 ("net: stmmac: Implement RSS and enable it in XGMAC > core") > Signed-off-by: Maxime Chevallier > --- > Jitendra, do you have plans to continue iterating on the BCM8958x glue > ? > > Thanks, > > Maxime > > drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c > b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c > index 1be5310ca766..4e917a448271 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c > @@ -927,6 +927,9 @@ static u32 stmmac_get_rxfh_key_size(struct > net_device *dev) > { > struct stmmac_priv *priv = netdev_priv(dev); > > + if (!priv->dma_cap.rssen || !priv->plat->rss_en) Should this pattern become a helper? Counting 6 instances so far. > + return 0; > + > return sizeof(priv->rss.key); > } > > @@ -934,6 +937,9 @@ static u32 stmmac_get_rxfh_indir_size(struct > net_device *dev) > { > struct stmmac_priv *priv = netdev_priv(dev); > > + if (!priv->dma_cap.rssen || !priv->plat->rss_en) > + return 0; > + > return ARRAY_SIZE(priv->rss.table); > } > > @@ -943,6 +949,9 @@ static int stmmac_get_rxfh(struct net_device *dev, > struct stmmac_priv *priv = netdev_priv(dev); > int i; > > + if (!priv->dma_cap.rssen || !priv->plat->rss_en) > + return -EOPNOTSUPP; Not a blocker, but a full netlink RSS dump (like the one in rss_ctx.py) now stops at this device. Naybe rss_dump_one_dev() should skip -EOPNOTSUPP like ethnl_default_dumpit() does? > + > if (rxfh->indir) { > for (i = 0; i < ARRAY_SIZE(priv->rss.table); i++) > rxfh->indir[i] = priv->rss.table[i]; > @@ -962,6 +971,9 @@ static int stmmac_set_rxfh(struct net_device *dev, > struct stmmac_priv *priv = netdev_priv(dev); > int i; > > + if (!priv->dma_cap.rssen || !priv->plat->rss_en) > + return -EOPNOTSUPP; > + > if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && > rxfh->hfunc != ETH_RSS_HASH_TOP) > return -EOPNOTSUPP; Thanks, Nicolai