diff options
author | Noa Osherovich <noaos@mellanox.com> | 2016-12-28 07:58:32 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-12-28 14:36:50 -0500 |
commit | 883371c453b937f9eb581fb4915210865982736f (patch) | |
tree | 6be4419a466b81dd6076798e71074bd625fd3843 | |
parent | 9da34cd34e85aacc55af8774b81b1f23e86014f9 (diff) |
net/mlx5: Check FW limitations on log_max_qp before setting it
When setting HCA capabilities, set log_max_qp to be the minimum
between the selected profile's value and the HCA limitation.
Fixes: 938fe83c8dcb ('net/mlx5_core: New device capabilities...')
Signed-off-by: Noa Osherovich <noaos@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/main.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/ethernet/mellanox/mlx5/core/main.c index 54e5a786f191..23c12f1aaa39 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c | |||
@@ -503,6 +503,13 @@ static int handle_hca_cap(struct mlx5_core_dev *dev) | |||
503 | MLX5_SET(cmd_hca_cap, set_hca_cap, pkey_table_size, | 503 | MLX5_SET(cmd_hca_cap, set_hca_cap, pkey_table_size, |
504 | to_fw_pkey_sz(dev, 128)); | 504 | to_fw_pkey_sz(dev, 128)); |
505 | 505 | ||
506 | /* Check log_max_qp from HCA caps to set in current profile */ | ||
507 | if (MLX5_CAP_GEN_MAX(dev, log_max_qp) < profile[prof_sel].log_max_qp) { | ||
508 | mlx5_core_warn(dev, "log_max_qp value in current profile is %d, changing it to HCA capability limit (%d)\n", | ||
509 | profile[prof_sel].log_max_qp, | ||
510 | MLX5_CAP_GEN_MAX(dev, log_max_qp)); | ||
511 | profile[prof_sel].log_max_qp = MLX5_CAP_GEN_MAX(dev, log_max_qp); | ||
512 | } | ||
506 | if (prof->mask & MLX5_PROF_MASK_QP_SIZE) | 513 | if (prof->mask & MLX5_PROF_MASK_QP_SIZE) |
507 | MLX5_SET(cmd_hca_cap, set_hca_cap, log_max_qp, | 514 | MLX5_SET(cmd_hca_cap, set_hca_cap, log_max_qp, |
508 | prof->log_max_qp); | 515 | prof->log_max_qp); |