diff options
author | Huy Nguyen <huyn@mellanox.com> | 2017-10-26 10:56:34 -0400 |
---|---|---|
committer | Saeed Mahameed <saeedm@mellanox.com> | 2017-12-19 16:23:59 -0500 |
commit | ff0891915cd7b24ab27eee9b360c0452853bf9f6 (patch) | |
tree | 83474d04de001732d0dc76999751b6e2f442e37d | |
parent | 37e92a9d4fe38dc3e7308913575983a6a088c8d4 (diff) |
net/mlx5e: Fix ETS BW check
Fix bug that allows ets bw sum to be 0% when ets tc type exists.
Fixes: 08fb1dacdd76 ('net/mlx5e: Support DCBNL IEEE ETS')
Signed-off-by: Moshe Shemesh <moshe@mellanox.com>
Reviewed-by: Huy Nguyen <huyn@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c b/drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c index c6d90b6dd80e..9bcf38f4123b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c | |||
@@ -274,6 +274,7 @@ int mlx5e_dcbnl_ieee_setets_core(struct mlx5e_priv *priv, struct ieee_ets *ets) | |||
274 | static int mlx5e_dbcnl_validate_ets(struct net_device *netdev, | 274 | static int mlx5e_dbcnl_validate_ets(struct net_device *netdev, |
275 | struct ieee_ets *ets) | 275 | struct ieee_ets *ets) |
276 | { | 276 | { |
277 | bool have_ets_tc = false; | ||
277 | int bw_sum = 0; | 278 | int bw_sum = 0; |
278 | int i; | 279 | int i; |
279 | 280 | ||
@@ -288,11 +289,14 @@ static int mlx5e_dbcnl_validate_ets(struct net_device *netdev, | |||
288 | } | 289 | } |
289 | 290 | ||
290 | /* Validate Bandwidth Sum */ | 291 | /* Validate Bandwidth Sum */ |
291 | for (i = 0; i < IEEE_8021QAZ_MAX_TCS; i++) | 292 | for (i = 0; i < IEEE_8021QAZ_MAX_TCS; i++) { |
292 | if (ets->tc_tsa[i] == IEEE_8021QAZ_TSA_ETS) | 293 | if (ets->tc_tsa[i] == IEEE_8021QAZ_TSA_ETS) { |
294 | have_ets_tc = true; | ||
293 | bw_sum += ets->tc_tx_bw[i]; | 295 | bw_sum += ets->tc_tx_bw[i]; |
296 | } | ||
297 | } | ||
294 | 298 | ||
295 | if (bw_sum != 0 && bw_sum != 100) { | 299 | if (have_ets_tc && bw_sum != 100) { |
296 | netdev_err(netdev, | 300 | netdev_err(netdev, |
297 | "Failed to validate ETS: BW sum is illegal\n"); | 301 | "Failed to validate ETS: BW sum is illegal\n"); |
298 | return -EINVAL; | 302 | return -EINVAL; |