]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
ethtool: Fix set RXNFC command with symmetric RSS hash
authorGal Pressman <gal@nvidia.com>
Sun, 26 Jan 2025 19:18:45 +0000 (21:18 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 28 Jan 2025 11:25:42 +0000 (12:25 +0100)
The sanity check that both source and destination are set when symmetric
RSS hash is requested is only relevant for ETHTOOL_SRXFH (rx-flow-hash),
it should not be performed on any other commands (e.g.
ETHTOOL_SRXCLSRLINS/ETHTOOL_SRXCLSRLDEL).

This resolves accessing uninitialized 'info.data' field, and fixes false
errors in rule insertion:
  # ethtool --config-ntuple eth2 flow-type ip4 dst-ip 255.255.255.255 action -1 loc 0
  rmgr: Cannot insert RX class rule: Invalid argument
  Cannot insert classification rule

Fixes: 13e59344fb9d ("net: ethtool: add support for symmetric-xor RSS hash")
Cc: Ahmed Zaki <ahmed.zaki@intel.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Gal Pressman <gal@nvidia.com>
Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
Reviewed-by: Edward Cree <ecree.xilinx@gmail.com>
Reviewed-by: Ahmed Zaki <ahmed.zaki@intel.com>
Link: https://patch.msgid.link/20250126191845.316589-1-gal@nvidia.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
net/ethtool/ioctl.c

index 7bb94875a7ec87b3e2d882cb5df2416b9fad9d9d..34bee42e12470c9eaa51f9f4ccccf3bf841a0c31 100644 (file)
@@ -998,7 +998,7 @@ static noinline_for_stack int ethtool_set_rxnfc(struct net_device *dev,
            ethtool_get_flow_spec_ring(info.fs.ring_cookie))
                return -EINVAL;
 
-       if (ops->get_rxfh) {
+       if (cmd == ETHTOOL_SRXFH && ops->get_rxfh) {
                struct ethtool_rxfh_param rxfh = {};
 
                rc = ops->get_rxfh(dev, &rxfh);