]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ethtool: assert that drivers with sym hash are consistent for RSS contexts
authorJakub Kicinski <kuba@kernel.org>
Thu, 17 Jul 2025 23:43:36 +0000 (16:43 -0700)
committerJakub Kicinski <kuba@kernel.org>
Tue, 22 Jul 2025 01:20:19 +0000 (18:20 -0700)
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>
net/ethtool/common.c

index 4dcb4194f3ce19eadae24f2cf3756d9a262da6ba..82afe0f2a7cd654e777d9bb8726c6ef0562f0da7 100644 (file)
@@ -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.