[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20250929050247.51680-1-enjuk@amazon.com>
Date: Mon, 29 Sep 2025 14:02:22 +0900
From: Kohei Enju <enjuk@...zon.com>
To: <netdev@...r.kernel.org>
CC: Shay Agroskin <shayagr@...zon.com>, Arthur Kiyanovski
<akiyano@...zon.com>, David Arinzon <darinzon@...zon.com>, Saeed Bishara
<saeedb@...zon.com>, Andrew Lunn <andrew+netdev@...n.ch>, "David S. Miller"
<davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski
<kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>, Rosen Penev
<rosenp@...il.com>, Kohei Enju <enjuk@...zon.com>, Sameeh Jubran
<sameehj@...zon.com>, <kohei.enju@...il.com>
Subject: [PATCH net v1] net: ena: return 0 in ena_get_rxfh_key_size() when RSS hash key is not configurable
In EC2 instances where the RSS hash key is not configurable, ethtool
shows bogus RSS hash key since ena_get_rxfh_key_size() unconditionally
returns ENA_HASH_KEY_SIZE.
Commit 6a4f7dc82d1e ("net: ena: rss: do not allocate key when not
supported") added proper handling for devices that don't support RSS
hash key configuration, but ena_get_rxfh_key_size() has been unchanged.
When the RSS hash key is not configurable, return 0 instead of
ENA_HASH_KEY_SIZE to clarify getting the value is not supported.
Tested on m5 instance families.
Without patch:
# ethtool -x ens5 | grep -A 1 "RSS hash key"
RSS hash key:
00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
With patch:
# ethtool -x ens5 | grep -A 1 "RSS hash key"
RSS hash key:
Operation not supported
Fixes: 6a4f7dc82d1e ("net: ena: rss: do not allocate key when not supported")
Signed-off-by: Kohei Enju <enjuk@...zon.com>
---
I considered two possible commits for the Fixes: tag:
- 1738cd3ed342 ("net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)")
- 6a4f7dc82d1e ("net: ena: rss: do not allocate key when not supported")
and then chose 6a4f7dc82d1e as it introduced the condition where
rss->hash_key could be NULL. However I'm not so attached to the choice,
so please let me know if you prefer a different approach.
---
drivers/net/ethernet/amazon/ena/ena_ethtool.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/amazon/ena/ena_ethtool.c b/drivers/net/ethernet/amazon/ena/ena_ethtool.c
index a81d3a7a3bb9..fe3479b84a1f 100644
--- a/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+++ b/drivers/net/ethernet/amazon/ena/ena_ethtool.c
@@ -865,7 +865,10 @@ static u32 ena_get_rxfh_indir_size(struct net_device *netdev)
static u32 ena_get_rxfh_key_size(struct net_device *netdev)
{
- return ENA_HASH_KEY_SIZE;
+ struct ena_adapter *adapter = netdev_priv(netdev);
+ struct ena_rss *rss = &adapter->ena_dev->rss;
+
+ return rss->hash_key ? ENA_HASH_KEY_SIZE : 0;
}
static int ena_indirection_table_set(struct ena_adapter *adapter,
--
2.48.1
Powered by blists - more mailing lists