From: Alex Markuze Date: Tue, 5 Mar 2013 12:22:53 +0000 (+0200) Subject: Seting ring size to default when module param set incorrectly X-Git-Tag: v4.1.12-92~293^2~1^2~82 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=c0596ff15a1fc2d21bfecd7b83f4522f40af330c;p=users%2Fjedix%2Flinux-maple.git Seting ring size to default when module param set incorrectly Signed-off-by: Alex Markuze (Ported from Mellanox OFED 2.4) Signed-off-by: Mukesh Kacker --- diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c index 194bce6fc00b..e3bae124da90 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_main.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c @@ -1773,13 +1773,31 @@ static int __init ipoib_init_module(void) { int ret; - ipoib_recvq_size = roundup_pow_of_two(ipoib_recvq_size); - ipoib_recvq_size = min(ipoib_recvq_size, IPOIB_MAX_QUEUE_SIZE); - ipoib_recvq_size = max(ipoib_recvq_size, IPOIB_MIN_QUEUE_SIZE); + if (ipoib_recvq_size <= IPOIB_MAX_QUEUE_SIZE && + ipoib_recvq_size >= IPOIB_MIN_QUEUE_SIZE) { + ipoib_recvq_size = roundup_pow_of_two(ipoib_recvq_size); + ipoib_recvq_size = min(ipoib_recvq_size, IPOIB_MAX_QUEUE_SIZE); + ipoib_recvq_size = max(ipoib_recvq_size, IPOIB_MIN_QUEUE_SIZE); + } else { + pr_err(KERN_ERR "ipoib_recvq_size is out of bounds [%d-%d], seting to default %d\n", + IPOIB_MIN_QUEUE_SIZE, IPOIB_MAX_QUEUE_SIZE, + IPOIB_RX_RING_SIZE); + ipoib_recvq_size = IPOIB_RX_RING_SIZE; + } + + if (ipoib_sendq_size <= IPOIB_MAX_QUEUE_SIZE && + ipoib_sendq_size >= IPOIB_MIN_QUEUE_SIZE) { + ipoib_sendq_size = roundup_pow_of_two(ipoib_sendq_size); + ipoib_sendq_size = min(ipoib_sendq_size, IPOIB_MAX_QUEUE_SIZE); + ipoib_sendq_size = max3(ipoib_sendq_size, 2 * MAX_SEND_CQE, + IPOIB_MIN_QUEUE_SIZE); + } else { + pr_err(KERN_ERR "ipoib_sendq_size is out of bounds [%d-%d], seting to default %d\n", + IPOIB_MIN_QUEUE_SIZE, IPOIB_MAX_QUEUE_SIZE, + IPOIB_TX_RING_SIZE); + ipoib_sendq_size = IPOIB_TX_RING_SIZE; + } - ipoib_sendq_size = roundup_pow_of_two(ipoib_sendq_size); - ipoib_sendq_size = min(ipoib_sendq_size, IPOIB_MAX_QUEUE_SIZE); - ipoib_sendq_size = max3(ipoib_sendq_size, 2 * MAX_SEND_CQE, IPOIB_MIN_QUEUE_SIZE); #ifdef CONFIG_INFINIBAND_IPOIB_CM ipoib_max_conn_qp = min(ipoib_max_conn_qp, IPOIB_CM_MAX_CONN_QP); #endif