net/mlx4_en: fix mlx4 ethtool -N insertion
authorLuigi Rizzo <lrizzo@google.com>
Fri, 15 Nov 2019 20:12:25 +0000 (12:12 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 1 Dec 2019 08:13:08 +0000 (09:13 +0100)
[ Upstream commit 34e59836565e36fade1464e054a3551c1a0364be ]

ethtool expects ETHTOOL_GRXCLSRLALL to set ethtool_rxnfc->data with the
total number of entries in the rx classifier table.  Surprisingly, mlx4
is missing this part (in principle ethtool could still move forward and
try the insert).

Tested: compiled and run command:
phh13:~# ethtool -N eth1 flow-type udp4  queue 4
Added rule with ID 255

Signed-off-by: Luigi Rizzo <lrizzo@google.com>
Reviewed-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c

index d631cd94ee636453dd534c82ac1f0e0411475e89..25a15bdc125e47459efe8d54b4ff9a50d3454d1f 100644 (file)
@@ -1722,6 +1722,7 @@ static int mlx4_en_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd,
                err = mlx4_en_get_flow(dev, cmd, cmd->fs.location);
                break;
        case ETHTOOL_GRXCLSRLALL:
+               cmd->data = MAX_NUM_OF_FS_RULES;
                while ((!err || err == -ENOENT) && priority < cmd->rule_cnt) {
                        err = mlx4_en_get_flow(dev, cmd, i);
                        if (!err)