Commit 3e7561636f3f7f9b2942f6f90b021fdaeb0fe0ee
Exists in
master
and in
7 other branches
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: RDMA/cxgb4: Obtain RDMA QID ranges from LLD/FW
Showing 3 changed files Side-by-side Diff
drivers/infiniband/hw/cxgb4/device.c
... | ... | @@ -250,12 +250,17 @@ |
250 | 250 | rdev->cqshift = PAGE_SHIFT - ilog2(rdev->lldi.ucq_density); |
251 | 251 | rdev->cqmask = rdev->lldi.ucq_density - 1; |
252 | 252 | PDBG("%s dev %s stag start 0x%0x size 0x%0x num stags %d " |
253 | - "pbl start 0x%0x size 0x%0x rq start 0x%0x size 0x%0x\n", | |
253 | + "pbl start 0x%0x size 0x%0x rq start 0x%0x size 0x%0x " | |
254 | + "qp qid start %u size %u cq qid start %u size %u\n", | |
254 | 255 | __func__, pci_name(rdev->lldi.pdev), rdev->lldi.vr->stag.start, |
255 | 256 | rdev->lldi.vr->stag.size, c4iw_num_stags(rdev), |
256 | 257 | rdev->lldi.vr->pbl.start, |
257 | 258 | rdev->lldi.vr->pbl.size, rdev->lldi.vr->rq.start, |
258 | - rdev->lldi.vr->rq.size); | |
259 | + rdev->lldi.vr->rq.size, | |
260 | + rdev->lldi.vr->qp.start, | |
261 | + rdev->lldi.vr->qp.size, | |
262 | + rdev->lldi.vr->cq.start, | |
263 | + rdev->lldi.vr->cq.size); | |
259 | 264 | PDBG("udb len 0x%x udb base %p db_reg %p gts_reg %p qpshift %lu " |
260 | 265 | "qpmask 0x%x cqshift %lu cqmask 0x%x\n", |
261 | 266 | (unsigned)pci_resource_len(rdev->lldi.pdev, 2), |
drivers/infiniband/hw/cxgb4/resource.c
... | ... | @@ -110,11 +110,12 @@ |
110 | 110 | |
111 | 111 | spin_lock_init(&rdev->resource.qid_fifo_lock); |
112 | 112 | |
113 | - if (kfifo_alloc(&rdev->resource.qid_fifo, T4_MAX_QIDS * sizeof(u32), | |
114 | - GFP_KERNEL)) | |
113 | + if (kfifo_alloc(&rdev->resource.qid_fifo, rdev->lldi.vr->qp.size * | |
114 | + sizeof(u32), GFP_KERNEL)) | |
115 | 115 | return -ENOMEM; |
116 | 116 | |
117 | - for (i = T4_QID_BASE; i < T4_QID_BASE + T4_MAX_QIDS; i++) | |
117 | + for (i = rdev->lldi.vr->qp.start; | |
118 | + i < rdev->lldi.vr->qp.start + rdev->lldi.vr->qp.size; i++) | |
118 | 119 | if (!(i & rdev->qpmask)) |
119 | 120 | kfifo_in(&rdev->resource.qid_fifo, |
120 | 121 | (unsigned char *) &i, sizeof(u32)); |
drivers/infiniband/hw/cxgb4/t4.h