summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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.