linux/net/ethtool
Jakub Kicinski 1c172febdf net: rss: fix reporting RXH_XFRM_NO_CHANGE as input_xfrm for contexts
Initializing input_xfrm to RXH_XFRM_NO_CHANGE in RSS contexts is
problematic. I think I did this to make it clear that the context
does not have its own settings applied. But unlike ETH_RSS_HASH_NO_CHANGE
which is zero, RXH_XFRM_NO_CHANGE is 0xff. We need to be careful
when reading the value back, and remember to treat 0xff as 0.

Remove the initialization and switch to storing 0. This lets us
also remove the workaround in ethnl_rss_set(). Get side does not
need any adjustments and context get no longer reports:

  RSS input transformation:
    symmetric-xor: on
    symmetric-or-xor: on
    Unknown bits in RSS input transformation: 0xfc

for NICs which don't support input_xfrm.

Remove the init of hfunc to ETH_RSS_HASH_NO_CHANGE while at it.
As already mentioned this is a noop since ETH_RSS_HASH_NO_CHANGE
is 0 and struct is zalloc'd. But as this fix exemplifies storing
NO_CHANGE as state is fragile.

This issue is implicitly caught by running our selftests because
YNL in selftests errors out on unknown bits.

Fixes: d3e2c7bab1 ("ethtool: rss: support setting input-xfrm via Netlink")
Link: https://patch.msgid.link/20260130190311.811129-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-02-02 17:09:48 -08:00
..
bitset.c ethtool: Fix wrong mod state in case of verbose and no_mask bitset 2024-12-04 18:54:43 -08:00
bitset.h ethtool: add ethnl_parse_bitset() helper 2020-03-12 15:32:32 -07:00
cabletest.c net: move misc netdev_lock flavors to a separate header 2025-03-08 09:06:50 -08:00
channels.c ethtool: refactor checking max channels 2024-08-09 21:52:13 -07:00
cmis.h ethtool: cmis_cdb: Fix incorrect read / write length extension 2025-04-10 14:32:43 +02:00
cmis_cdb.c ethtool: cmis_cdb: use correct rpl size in ethtool_cmis_module_poll() 2025-04-11 18:41:19 -07:00
cmis_fw_update.c net: move misc netdev_lock flavors to a separate header 2025-03-08 09:06:50 -08:00
coalesce.c net: ethtool: Fix the panic caused by dev being null when dumping coalesce 2024-07-01 13:43:50 +01:00
common.c net: rss: fix reporting RXH_XFRM_NO_CHANGE as input_xfrm for contexts 2026-02-02 17:09:48 -08:00
common.h net: ethtool: add get_rx_ring_count callback to optimize RX ring queries 2025-09-18 07:07:37 -07:00
debug.c ethtool: netlink: always pass genl_info to .prepare_data 2023-08-15 15:01:03 -07:00
eee.c net: ethtool: eee: Remove legacy _u32 from keee 2024-02-28 12:18:05 +00:00
eeprom.c ethtool: move firmware flashing flag to struct ethtool_netdev_state 2024-07-04 15:45:15 -07:00
features.c net: move misc netdev_lock flavors to a separate header 2025-03-08 09:06:50 -08:00
fec.c ethtool: add FEC bins histogram report 2025-09-26 16:49:18 -07:00
ioctl.c ethtool: Avoid overflowing userspace buffer on stats query 2025-12-18 12:24:25 +01:00
linkinfo.c Revert "net: ethtool: Avoid thousands of -Wflex-array-member-not-at-end warnings" 2024-11-18 18:52:11 -08:00
linkmodes.c Revert "net: ethtool: Avoid thousands of -Wflex-array-member-not-at-end warnings" 2024-11-18 18:52:11 -08:00
linkstate.c net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device 2025-03-04 17:12:01 -08:00
Makefile ethtool: netlink: add ETHTOOL_MSG_MSE_GET and wire up PHY MSE access 2025-11-03 18:32:27 -08:00
mm.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
module.c net: move misc netdev_lock flavors to a separate header 2025-03-08 09:06:50 -08:00
module_fw.h ethtool: Add ability to flash transceiver modules' firmware 2024-06-28 10:48:23 +01:00
mse.c ethtool: netlink: add ETHTOOL_MSG_MSE_GET and wire up PHY MSE access 2025-11-03 18:32:27 -08:00
netlink.c ethtool: netlink: add ETHTOOL_MSG_MSE_GET and wire up PHY MSE access 2025-11-03 18:32:27 -08:00
netlink.h ethtool: netlink: add ETHTOOL_MSG_MSE_GET and wire up PHY MSE access 2025-11-03 18:32:27 -08:00
pause.c Revert "Documentation: net: add flow control guide and document ethtool API" 2025-10-01 09:48:21 +02:00
phc_vclocks.c ethtool: netlink: always pass genl_info to .prepare_data 2023-08-15 15:01:03 -07:00
phy.c net: ethtool: phy: Convert the PHY_GET command to generic phy dump 2025-05-05 17:17:40 -07:00
plca.c net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device 2025-03-04 17:12:01 -08:00
privflags.c ethtool: netlink: always pass genl_info to .prepare_data 2023-08-15 15:01:03 -07:00
pse-pd.c ethtool: pse-pd: Add missing linux/export.h include 2025-06-23 13:13:01 -07:00
rings.c net: ethtool: fix ioctl confusing drivers about desired HDS user config 2025-02-24 14:15:42 -08:00
rss.c net: rss: fix reporting RXH_XFRM_NO_CHANGE as input_xfrm for contexts 2026-02-02 17:09:48 -08:00
stats.c net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device 2025-03-04 17:12:01 -08:00
strset.c net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device 2025-03-04 17:12:01 -08:00
ts.h net: ethtool: tsinfo: Enhance tsinfo to support several hwtstamp by net topology 2024-12-16 12:51:41 +00:00
tsconfig.c net: ethtool: tsconfig: set command must provide a reply 2025-09-23 17:13:05 -07:00
tsinfo.c net: Add support for providing the PTP hardware source in tsinfo 2025-05-22 15:32:00 +02:00
tunnels.c genetlink: use attrs from struct genl_info 2023-08-15 15:00:45 -07:00
wol.c net: move ethtool-related netdev state into its own struct 2024-06-28 18:53:17 -07:00