From 689dd302bd0607311d2f21815cdb570e8b17f86b Mon Sep 17 00:00:00 2001 From: Moshe Lazer Date: Sun, 4 Nov 2012 09:08:46 +0200 Subject: [PATCH] mlx4_core: Update minimum size for log_num_qp to 18 The minimum number of QPs must exceed the number of reserved QPs. The reserved QPs can be divided to 2 categories reserved_from_bot and reserved_from_top. reserved_from_bot is normally less than 2K QPs and can't exceed 2^16 QPs. reserved_from_top is the sum of reserved QPs for REGION_ETH_ADDR, REGION_FC_ADDR and REGION_FC_EXCH. reserved QPs for REGION_FC_EXCH is 2^16 and for REGION_FC_ADDR and REGION_ETH_ADDR it can't exceed 2^15. Therefore: reserved_from_top <= 2^16 + 2*(2^15) = 2^17 Reserved QPs = reserved_from_bot + reserved_from_top <= 2^16 + 2^17 < 2^18 To make it simpler I set the minimum qp number to 2^18 even though 2^17 is acceptable when log_num_mac module parameter is set to 6 (or lower). Signed-off-by: Moshe Lazer Reviewed-by: Eli Cohen (Ported from Mellanox OFED 2.4) Signed-off-by: Mukesh Kacker --- drivers/net/ethernet/mellanox/mlx4/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c index d09a77170e99..fcb26f2b246a 100644 --- a/drivers/net/ethernet/mellanox/mlx4/main.c +++ b/drivers/net/ethernet/mellanox/mlx4/main.c @@ -3795,7 +3795,7 @@ static int __init mlx4_verify_params(void) return -1; } - if (mod_param_profile.num_qp < 12 || mod_param_profile.num_qp > 23) { + if (mod_param_profile.num_qp < 18 || mod_param_profile.num_qp > 23) { pr_warning("mlx4_core: bad log_num_qp: %d\n", mod_param_profile.num_qp); return -1; -- 2.50.1