| From 5e82c9e4ed60beba83f46a1a5a8307b99a23e982 Mon Sep 17 00:00:00 2001 |
| From: Ilan Tayari <ilant@mellanox.com> |
| Date: Thu, 2 Mar 2017 15:49:45 +0200 |
| Subject: [PATCH] net/mlx5e: Fix ETHTOOL_GRXCLSRLALL handling |
| |
| commit 5e82c9e4ed60beba83f46a1a5a8307b99a23e982 upstream. |
| |
| Handler for ETHTOOL_GRXCLSRLALL must set info->data to the size |
| of the table, regardless of the amount of entries in it. |
| Existing code does not do that, and this breaks all usage of ethtool -N |
| or -n without explicit location, with this error: |
| rmgr: Invalid RX class rules table size: Success |
| |
| Set info->data to the table size. |
| |
| Tested: |
| ethtool -n ens8 |
| ethtool -N ens8 flow-type ip4 src-ip 1.1.1.1 dst-ip 2.2.2.2 action 1 |
| ethtool -N ens8 flow-type ip4 src-ip 1.1.1.1 dst-ip 2.2.2.2 action 1 loc 55 |
| ethtool -n ens8 |
| ethtool -N ens8 delete 1023 |
| ethtool -N ens8 delete 55 |
| |
| Fixes: f913a72aa008 ("net/mlx5e: Add support to get ethtool flow rules") |
| Signed-off-by: Ilan Tayari <ilant@mellanox.com> |
| Signed-off-by: Saeed Mahameed <saeedm@mellanox.com> |
| |
| diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c |
| index d55fff0ba388..26fc77e80f7b 100644 |
| --- a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c |
| +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c |
| @@ -564,6 +564,7 @@ int mlx5e_ethtool_get_all_flows(struct mlx5e_priv *priv, struct ethtool_rxnfc *i |
| int idx = 0; |
| int err = 0; |
| |
| + info->data = MAX_NUM_OF_ETHTOOL_RULES; |
| while ((!err || err == -ENOENT) && idx < info->rule_cnt) { |
| err = mlx5e_ethtool_get_flow(priv, info, location); |
| if (!err) |
| -- |
| 2.12.0 |
| |