Thomas Bogendoerfer 5dc906
From: Wenpeng Liang <liangwenpeng@huawei.com>
Thomas Bogendoerfer 5dc906
Date: Fri, 1 Nov 2019 10:33:30 +0800
Thomas Bogendoerfer 5dc906
Subject: RDMA/hns: Correct the value of srq_desc_size
Thomas Bogendoerfer 5dc906
Patch-mainline: v5.4-rc8
Thomas Bogendoerfer 5dc906
Git-commit: 411c1e6774e2e1f96b1ccce4f119376b94ade3e4
Thomas Bogendoerfer 5dc906
References: bsc#1104427 FATE#326416
Thomas Bogendoerfer 5dc906
Thomas Bogendoerfer 5dc906
srq_desc_size should be rounded up to pow of two before used, or related
Thomas Bogendoerfer 5dc906
calculation may cause allocating wrong size of memory for srq buffer.
Thomas Bogendoerfer 5dc906
Thomas Bogendoerfer 5dc906
Fixes: c7bcb13442e1 ("RDMA/hns: Add SRQ support for hip08 kernel mode")
Thomas Bogendoerfer 5dc906
Link: https://lore.kernel.org/r/1572575610-52530-3-git-send-email-liweihang@hisilicon.com
Thomas Bogendoerfer 5dc906
Signed-off-by: Wenpeng Liang <liangwenpeng@huawei.com>
Thomas Bogendoerfer 5dc906
Signed-off-by: Weihang Li <liweihang@hisilicon.com>
Thomas Bogendoerfer 5dc906
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Thomas Bogendoerfer 5dc906
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Thomas Bogendoerfer 5dc906
---
Thomas Bogendoerfer 5dc906
 drivers/infiniband/hw/hns/hns_roce_srq.c |    2 +-
Thomas Bogendoerfer 5dc906
 1 file changed, 1 insertion(+), 1 deletion(-)
Thomas Bogendoerfer 5dc906
Thomas Bogendoerfer 5dc906
--- a/drivers/infiniband/hw/hns/hns_roce_srq.c
Thomas Bogendoerfer 5dc906
+++ b/drivers/infiniband/hw/hns/hns_roce_srq.c
Thomas Bogendoerfer 5dc906
@@ -233,7 +233,7 @@ struct ib_srq *hns_roce_create_srq(struc
Thomas Bogendoerfer 5dc906
 	srq->max = roundup_pow_of_two(srq_init_attr->attr.max_wr + 1);
Thomas Bogendoerfer 5dc906
 	srq->max_gs = srq_init_attr->attr.max_sge;
Thomas Bogendoerfer 5dc906
 
Thomas Bogendoerfer 5dc906
-	srq_desc_size = max(16, 16 * srq->max_gs);
Thomas Bogendoerfer 5dc906
+	srq_desc_size = roundup_pow_of_two(max(16, 16 * srq->max_gs));
Thomas Bogendoerfer 5dc906
 
Thomas Bogendoerfer 5dc906
 	srq->wqe_shift = ilog2(srq_desc_size);
Thomas Bogendoerfer 5dc906