mirror of
https://github.com/torvalds/linux.git
synced 2024-12-02 17:11:33 +00:00
qed: Fix maximum number of CQs for iWARP
The maximum number of CQs supported is bound to the number
of connections supported, which differs between RoCE and iWARP.
This fixes a crash that occurred in iWARP when running 1000 sessions
using perftest.
Fixes: 67b40dccc4
("qed: Implement iWARP initialization, teardown and qp operations")
Signed-off-by: Michal Kalderon <Michal.Kalderon@cavium.com>
Signed-off-by: Ariel Elior <Ariel.Elior@cavium.com>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d1abfd0b4e
commit
471115ab98
@ -209,11 +209,11 @@ static int qed_rdma_alloc(struct qed_hwfn *p_hwfn,
|
||||
goto free_pd_map;
|
||||
}
|
||||
|
||||
/* Allocate bitmap for cq's. The maximum number of CQs is bounded to
|
||||
* twice the number of QPs.
|
||||
/* Allocate bitmap for cq's. The maximum number of CQs is bound to
|
||||
* the number of connections we support. (num_qps in iWARP or
|
||||
* num_qps/2 in RoCE).
|
||||
*/
|
||||
rc = qed_rdma_bmap_alloc(p_hwfn, &p_rdma_info->cq_map,
|
||||
p_rdma_info->num_qps * 2, "CQ");
|
||||
rc = qed_rdma_bmap_alloc(p_hwfn, &p_rdma_info->cq_map, num_cons, "CQ");
|
||||
if (rc) {
|
||||
DP_VERBOSE(p_hwfn, QED_MSG_RDMA,
|
||||
"Failed to allocate cq bitmap, rc = %d\n", rc);
|
||||
@ -222,10 +222,10 @@ static int qed_rdma_alloc(struct qed_hwfn *p_hwfn,
|
||||
|
||||
/* Allocate bitmap for toggle bit for cq icids
|
||||
* We toggle the bit every time we create or resize cq for a given icid.
|
||||
* The maximum number of CQs is bounded to twice the number of QPs.
|
||||
* Size needs to equal the size of the cq bmap.
|
||||
*/
|
||||
rc = qed_rdma_bmap_alloc(p_hwfn, &p_rdma_info->toggle_bits,
|
||||
p_rdma_info->num_qps * 2, "Toggle");
|
||||
num_cons, "Toggle");
|
||||
if (rc) {
|
||||
DP_VERBOSE(p_hwfn, QED_MSG_RDMA,
|
||||
"Failed to allocate toogle bits, rc = %d\n", rc);
|
||||
|
Loading…
Reference in New Issue
Block a user