summaryrefslogtreecommitdiff
path: root/net/ethtool/common.c
diff options
context:
space:
mode:
authorJakub Kicinski <kuba@kernel.org>2025-07-17 16:43:36 -0700
committerJakub Kicinski <kuba@kernel.org>2025-07-21 18:20:19 -0700
commit80e55735d5a5a1f765e807d4c38027039f48302f (patch)
treeca2df426e2e8c5668eb7046d2a1cd11facb605cc /net/ethtool/common.c
parente8c24e23c4c9f515b02dde01de9ec2c945b2fddc (diff)
ethtool: assert that drivers with sym hash are consistent for RSS contexts
Supporting per-RSS context configuration of hashing fields but not the hashing algorithm would complicate the code a lot. We'd need to cross check the config against all RSS contexts. None of the drivers need this today, so explicitly prevent new drivers with such skewed capabilities from registering. If such driver appears it will need to first adjust the checks in the core. Link: https://patch.msgid.link/20250717234343.2328602-2-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/ethtool/common.c')
-rw-r--r--net/ethtool/common.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/ethtool/common.c b/net/ethtool/common.c
index 4dcb4194f3ce..82afe0f2a7cd 100644
--- a/net/ethtool/common.c
+++ b/net/ethtool/common.c
@@ -829,6 +829,10 @@ int ethtool_check_ops(const struct ethtool_ops *ops)
return -EINVAL;
if (WARN_ON(ops->supported_input_xfrm && !ops->get_rxfh_fields))
return -EINVAL;
+ if (WARN_ON(ops->supported_input_xfrm &&
+ ops->rxfh_per_ctx_fields != ops->rxfh_per_ctx_key))
+ return -EINVAL;
+
/* NOTE: sufficiently insane drivers may swap ethtool_ops at runtime,
* the fact that ops are checked at registration time does not
* mean the ops attached to a netdev later on are sane.