Lines Matching refs:qp_table
214 struct hns_roce_qp_table *qp_table = &hr_dev->qp_table; in alloc_qpn() local
222 mutex_lock(&qp_table->bank_mutex); in alloc_qpn()
223 bankid = get_least_load_bankid_for_qp(qp_table->bank); in alloc_qpn()
225 ret = alloc_qpn_with_bankid(&qp_table->bank[bankid], bankid, in alloc_qpn()
230 mutex_unlock(&qp_table->bank_mutex); in alloc_qpn()
234 qp_table->bank[bankid].inuse++; in alloc_qpn()
235 mutex_unlock(&qp_table->bank_mutex); in alloc_qpn()
289 struct hns_roce_qp_table *qp_table = &hr_dev->qp_table; in alloc_qpc() local
297 ret = hns_roce_table_get(hr_dev, &qp_table->qp_table, hr_qp->qpn); in alloc_qpc()
304 ret = hns_roce_table_get(hr_dev, &qp_table->irrl_table, hr_qp->qpn); in alloc_qpc()
312 ret = hns_roce_table_get(hr_dev, &qp_table->trrl_table, in alloc_qpc()
322 ret = hns_roce_table_get(hr_dev, &qp_table->sccc_table, in alloc_qpc()
334 hns_roce_table_put(hr_dev, &qp_table->trrl_table, hr_qp->qpn); in alloc_qpc()
337 hns_roce_table_put(hr_dev, &qp_table->irrl_table, hr_qp->qpn); in alloc_qpc()
340 hns_roce_table_put(hr_dev, &qp_table->qp_table, hr_qp->qpn); in alloc_qpc()
372 struct hns_roce_qp_table *qp_table = &hr_dev->qp_table; in free_qpc() local
375 hns_roce_table_put(hr_dev, &qp_table->trrl_table, hr_qp->qpn); in free_qpc()
376 hns_roce_table_put(hr_dev, &qp_table->irrl_table, hr_qp->qpn); in free_qpc()
397 ida_free(&hr_dev->qp_table.bank[bankid].ida, hr_qp->qpn >> 3); in free_qpn()
399 mutex_lock(&hr_dev->qp_table.bank_mutex); in free_qpn()
400 hr_dev->qp_table.bank[bankid].inuse--; in free_qpn()
401 mutex_unlock(&hr_dev->qp_table.bank_mutex); in free_qpn()
1446 struct hns_roce_qp_table *qp_table = &hr_dev->qp_table; in hns_roce_init_qp_table() local
1450 qp_table->idx_table.spare_idx = kcalloc(hr_dev->caps.num_qps, in hns_roce_init_qp_table()
1452 if (!qp_table->idx_table.spare_idx) in hns_roce_init_qp_table()
1455 mutex_init(&qp_table->scc_mutex); in hns_roce_init_qp_table()
1456 mutex_init(&qp_table->bank_mutex); in hns_roce_init_qp_table()
1462 hr_dev->qp_table.bank[get_qp_bankid(i)].inuse++; in hns_roce_init_qp_table()
1463 hr_dev->qp_table.bank[get_qp_bankid(i)].min++; in hns_roce_init_qp_table()
1467 ida_init(&hr_dev->qp_table.bank[i].ida); in hns_roce_init_qp_table()
1468 hr_dev->qp_table.bank[i].max = hr_dev->caps.num_qps / in hns_roce_init_qp_table()
1470 hr_dev->qp_table.bank[i].next = hr_dev->qp_table.bank[i].min; in hns_roce_init_qp_table()
1481 ida_destroy(&hr_dev->qp_table.bank[i].ida); in hns_roce_cleanup_qp_table()
1482 kfree(hr_dev->qp_table.idx_table.spare_idx); in hns_roce_cleanup_qp_table()