* Re: [PATCH net] net: stmmac: Don't set or get RSS parameters when not supported
2026-09-26 9:33 [PATCH net] net: stmmac: Don't set or get RSS parameters when not supported Maxime Chevallier
@ 2026-09-26 18:41 ` Nicolai Buchwitz
2026-09-26 19:37 ` Maxime Chevallier
2026-09-27 22:46 ` Jakub Kicinski
2026-09-28 16:05 ` Jitendra Vegiraju
2 siblings, 1 reply; 6+ messages in thread
From: Nicolai Buchwitz @ 2026-09-26 18:41 UTC (permalink / raw)
To: Maxime Chevallier
Cc: Andrew Lunn, Jakub Kicinski, davem, Eric Dumazet, Paolo Abeni,
Simon Horman, Maxime Coquelin, Alexandre Torgue, Russell King,
Jitendra Vegiraju, thomas.petazzoni, Alexis Lothoré, netdev,
linux-kernel, linux-arm-kernel, linux-stm32
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 <maxime.chevallier@bootlin.com>
> ---
> 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
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH net] net: stmmac: Don't set or get RSS parameters when not supported
2026-09-26 18:41 ` Nicolai Buchwitz
@ 2026-09-26 19:37 ` Maxime Chevallier
0 siblings, 0 replies; 6+ messages in thread
From: Maxime Chevallier @ 2026-09-26 19:37 UTC (permalink / raw)
To: Nicolai Buchwitz
Cc: Andrew Lunn, Jakub Kicinski, davem, Eric Dumazet, Paolo Abeni,
Simon Horman, Maxime Coquelin, Alexandre Torgue, Russell King,
Jitendra Vegiraju, thomas.petazzoni, Alexis Lothoré, netdev,
linux-kernel, linux-arm-kernel, linux-stm32
Hi Nicolai,
On 9/26/26 20:41, Nicolai Buchwitz wrote:
> 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 <maxime.chevallier@bootlin.com>
>> ---
>> 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.
yeah why not :)
>
>> + 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?
there are other drivers that report -EOPNOTSUPP, we could have that as
a separate patch yeah
Thanks for looking at this,
Maxime
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net] net: stmmac: Don't set or get RSS parameters when not supported
2026-09-26 9:33 [PATCH net] net: stmmac: Don't set or get RSS parameters when not supported Maxime Chevallier
2026-09-26 18:41 ` Nicolai Buchwitz
@ 2026-09-27 22:46 ` Jakub Kicinski
2026-09-28 7:18 ` Maxime Chevallier
2026-09-28 16:05 ` Jitendra Vegiraju
2 siblings, 1 reply; 6+ messages in thread
From: Jakub Kicinski @ 2026-09-27 22:46 UTC (permalink / raw)
To: Maxime Chevallier
Cc: Andrew Lunn, davem, Eric Dumazet, Paolo Abeni, Simon Horman,
Maxime Coquelin, Alexandre Torgue, Russell King,
Jitendra Vegiraju, thomas.petazzoni, Alexis Lothoré, netdev,
linux-kernel, linux-arm-kernel, linux-stm32
On Sat, 26 Sep 2026 11:33:41 +0200 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.
this is net-next material
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net] net: stmmac: Don't set or get RSS parameters when not supported
2026-09-27 22:46 ` Jakub Kicinski
@ 2026-09-28 7:18 ` Maxime Chevallier
0 siblings, 0 replies; 6+ messages in thread
From: Maxime Chevallier @ 2026-09-28 7:18 UTC (permalink / raw)
To: Jakub Kicinski
Cc: Andrew Lunn, davem, Eric Dumazet, Paolo Abeni, Simon Horman,
Maxime Coquelin, Alexandre Torgue, Russell King,
Jitendra Vegiraju, thomas.petazzoni, Alexis Lothoré, netdev,
linux-kernel, linux-arm-kernel, linux-stm32
On 9/28/26 00:46, Jakub Kicinski wrote:
> On Sat, 26 Sep 2026 11:33:41 +0200 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.
>
> this is net-next material
Fair, I'll iterate with Nicolai's fix.
Thanks,
Maxime
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net] net: stmmac: Don't set or get RSS parameters when not supported
2026-09-26 9:33 [PATCH net] net: stmmac: Don't set or get RSS parameters when not supported Maxime Chevallier
2026-09-26 18:41 ` Nicolai Buchwitz
2026-09-27 22:46 ` Jakub Kicinski
@ 2026-09-28 16:05 ` Jitendra Vegiraju
2 siblings, 0 replies; 6+ messages in thread
From: Jitendra Vegiraju @ 2026-09-28 16:05 UTC (permalink / raw)
To: Maxime Chevallier
Cc: Andrew Lunn, Jakub Kicinski, davem, Eric Dumazet, Paolo Abeni,
Simon Horman, Maxime Coquelin, Alexandre Torgue, Russell King,
thomas.petazzoni, Alexis Lothoré, netdev, linux-kernel,
linux-arm-kernel, linux-stm32
[-- Attachment #1: Type: text/plain, Size: 3542 bytes --]
Hi Maxime,
On Sat, Sep 26, 2026 at 2:34 AM Maxime Chevallier
<maxime.chevallier@bootlin.com> 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 <maxime.chevallier@bootlin.com>
> ---
> Jitendra, do you have plans to continue iterating on the BCM8958x glue ?
Yes, we plan to resubmit the BCM8958x glue driver patches.
We paused it for a while. But, we are planning to test with the latest
net-next and submit the patches again.
Thanks,
Jitendra
>
> 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)
> + 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;
> +
> 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;
> --
> 2.55.0
>
[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 5489 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread