mirror of
https://github.com/torvalds/linux.git
synced 2024-12-17 00:21:32 +00:00
RDMA/hns: Fixup qp release bug
Hip06 reserve 12 qps, Hip08 reserve 8 qps. When the QP is released, the chip model is not judged, and the Hip08 cannot release the qpn 8~12 Signed-off-by: Lang Cheng <chenglang@huawei.com> Signed-off-by: Lijun Ou <oulijun@huawei.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
parent
6fafe560ee
commit
21b97f5387
@ -1559,6 +1559,7 @@ static int hns_roce_v1_profile(struct hns_roce_dev *hr_dev)
|
||||
caps->reserved_mrws = 1;
|
||||
caps->reserved_uars = 0;
|
||||
caps->reserved_cqs = 0;
|
||||
caps->reserved_qps = 12; /* 2 SQP per port, six ports total 12 */
|
||||
caps->chunk_sz = HNS_ROCE_V1_TABLE_CHUNK_SIZE;
|
||||
|
||||
for (i = 0; i < caps->num_ports; i++)
|
||||
|
@ -263,7 +263,7 @@ void hns_roce_release_range_qp(struct hns_roce_dev *hr_dev, int base_qpn,
|
||||
{
|
||||
struct hns_roce_qp_table *qp_table = &hr_dev->qp_table;
|
||||
|
||||
if (base_qpn < SQP_NUM)
|
||||
if (base_qpn < hr_dev->caps.reserved_qps)
|
||||
return;
|
||||
|
||||
hns_roce_bitmap_free_range(&qp_table->bitmap, base_qpn, cnt, BITMAP_RR);
|
||||
@ -1226,11 +1226,7 @@ int hns_roce_init_qp_table(struct hns_roce_dev *hr_dev)
|
||||
mutex_init(&qp_table->scc_mutex);
|
||||
xa_init(&hr_dev->qp_table_xa);
|
||||
|
||||
/* In hw v1, a port include two SQP, six ports total 12 */
|
||||
if (hr_dev->caps.max_sq_sg <= 2)
|
||||
reserved_from_bot = SQP_NUM;
|
||||
else
|
||||
reserved_from_bot = hr_dev->caps.reserved_qps;
|
||||
reserved_from_bot = hr_dev->caps.reserved_qps;
|
||||
|
||||
ret = hns_roce_bitmap_init(&qp_table->bitmap, hr_dev->caps.num_qps,
|
||||
hr_dev->caps.num_qps - 1, reserved_from_bot,
|
||||
|
Loading…
Reference in New Issue
Block a user