hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
....@@ -380,8 +380,8 @@
380380 q->len = len;
381381 q->entry_size = entry_size;
382382 q->size = len * entry_size;
383
- q->va = dma_zalloc_coherent(&dev->nic_info.pdev->dev, q->size,
384
- &q->dma, GFP_KERNEL);
383
+ q->va = dma_alloc_coherent(&dev->nic_info.pdev->dev, q->size, &q->dma,
384
+ GFP_KERNEL);
385385 if (!q->va)
386386 return -ENOMEM;
387387 return 0;
....@@ -792,7 +792,7 @@
792792 qp->srq->ibsrq.
793793 srq_context);
794794 } else if (dev_event) {
795
- pr_err("%s: Fatal event received\n", dev->ibdev.name);
795
+ dev_err(&dev->ibdev.dev, "Fatal event received\n");
796796 ib_dispatch_event(&ib_evt);
797797 }
798798
....@@ -1190,7 +1190,6 @@
11901190 attr->max_mr = rsp->max_mr;
11911191 attr->max_mr_size = ((u64)rsp->max_mr_size_hi << 32) |
11921192 rsp->max_mr_size_lo;
1193
- attr->max_fmr = 0;
11941193 attr->max_pages_per_frmr = rsp->max_pages_per_frmr;
11951194 attr->max_num_mr_pbl = rsp->max_num_mr_pbl;
11961195 attr->max_cqe = rsp->max_cq_cqes_per_cq &
....@@ -1351,7 +1350,6 @@
13511350 mqe->u.nonemb_req.sge[0].pa_hi = (u32) upper_32_bits(dma.pa);
13521351 mqe->u.nonemb_req.sge[0].len = dma.size;
13531352
1354
- memset(dma.va, 0, dma.size);
13551353 ocrdma_init_mch((struct ocrdma_mbx_hdr *)dma.va,
13561354 OCRDMA_CMD_GET_CTRL_ATTRIBUTES,
13571355 OCRDMA_SUBSYS_COMMON,
....@@ -1690,7 +1688,6 @@
16901688 goto mem_err_ah;
16911689 dev->av_tbl.pa = pa;
16921690 dev->av_tbl.num_ah = max_ah;
1693
- memset(dev->av_tbl.va, 0, dev->av_tbl.size);
16941691
16951692 pbes = (struct ocrdma_pbe *)dev->av_tbl.pbl.va;
16961693 for (i = 0; i < dev->av_tbl.size / OCRDMA_MIN_Q_PAGE_SIZE; i++) {
....@@ -1819,7 +1816,7 @@
18191816 return -ENOMEM;
18201817 ocrdma_init_mch(&cmd->cmd.req, OCRDMA_CMD_CREATE_CQ,
18211818 OCRDMA_SUBSYS_COMMON, sizeof(*cmd));
1822
- cq->va = dma_zalloc_coherent(&pdev->dev, cq->len, &cq->pa, GFP_KERNEL);
1819
+ cq->va = dma_alloc_coherent(&pdev->dev, cq->len, &cq->pa, GFP_KERNEL);
18231820 if (!cq->va) {
18241821 status = -ENOMEM;
18251822 goto mem_err;
....@@ -1888,14 +1885,13 @@
18881885 return status;
18891886 }
18901887
1891
-int ocrdma_mbx_destroy_cq(struct ocrdma_dev *dev, struct ocrdma_cq *cq)
1888
+void ocrdma_mbx_destroy_cq(struct ocrdma_dev *dev, struct ocrdma_cq *cq)
18921889 {
1893
- int status = -ENOMEM;
18941890 struct ocrdma_destroy_cq *cmd;
18951891
18961892 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_DELETE_CQ, sizeof(*cmd));
18971893 if (!cmd)
1898
- return status;
1894
+ return;
18991895 ocrdma_init_mch(&cmd->req, OCRDMA_CMD_DELETE_CQ,
19001896 OCRDMA_SUBSYS_COMMON, sizeof(*cmd));
19011897
....@@ -1903,11 +1899,10 @@
19031899 (cq->id << OCRDMA_DESTROY_CQ_QID_SHIFT) &
19041900 OCRDMA_DESTROY_CQ_QID_MASK;
19051901
1906
- status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd);
1902
+ ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd);
19071903 ocrdma_unbind_eq(dev, cq->eqn);
19081904 dma_free_coherent(&dev->nic_info.pdev->dev, cq->len, cq->va, cq->pa);
19091905 kfree(cmd);
1910
- return status;
19111906 }
19121907
19131908 int ocrdma_mbx_alloc_lkey(struct ocrdma_dev *dev, struct ocrdma_hw_mr *hwmr,
....@@ -1967,6 +1962,7 @@
19671962 int i;
19681963 struct ocrdma_reg_nsmr *cmd;
19691964 struct ocrdma_reg_nsmr_rsp *rsp;
1965
+ u64 fbo = hwmr->va & (hwmr->pbe_size - 1);
19701966
19711967 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_REGISTER_NSMR, sizeof(*cmd));
19721968 if (!cmd)
....@@ -1992,8 +1988,8 @@
19921988 OCRDMA_REG_NSMR_HPAGE_SIZE_SHIFT;
19931989 cmd->totlen_low = hwmr->len;
19941990 cmd->totlen_high = upper_32_bits(hwmr->len);
1995
- cmd->fbo_low = (u32) (hwmr->fbo & 0xffffffff);
1996
- cmd->fbo_high = (u32) upper_32_bits(hwmr->fbo);
1991
+ cmd->fbo_low = lower_32_bits(fbo);
1992
+ cmd->fbo_high = upper_32_bits(fbo);
19971993 cmd->va_loaddr = (u32) hwmr->va;
19981994 cmd->va_hiaddr = (u32) upper_32_bits(hwmr->va);
19991995
....@@ -2209,7 +2205,7 @@
22092205 qp->sq.max_cnt = max_wqe_allocated;
22102206 len = (hw_pages * hw_page_size);
22112207
2212
- qp->sq.va = dma_zalloc_coherent(&pdev->dev, len, &pa, GFP_KERNEL);
2208
+ qp->sq.va = dma_alloc_coherent(&pdev->dev, len, &pa, GFP_KERNEL);
22132209 if (!qp->sq.va)
22142210 return -EINVAL;
22152211 qp->sq.len = len;
....@@ -2259,7 +2255,7 @@
22592255 qp->rq.max_cnt = max_rqe_allocated;
22602256 len = (hw_pages * hw_page_size);
22612257
2262
- qp->rq.va = dma_zalloc_coherent(&pdev->dev, len, &pa, GFP_KERNEL);
2258
+ qp->rq.va = dma_alloc_coherent(&pdev->dev, len, &pa, GFP_KERNEL);
22632259 if (!qp->rq.va)
22642260 return -ENOMEM;
22652261 qp->rq.pa = pa;
....@@ -2315,8 +2311,8 @@
23152311 if (dev->attr.ird == 0)
23162312 return 0;
23172313
2318
- qp->ird_q_va = dma_zalloc_coherent(&pdev->dev, ird_q_len, &pa,
2319
- GFP_KERNEL);
2314
+ qp->ird_q_va = dma_alloc_coherent(&pdev->dev, ird_q_len, &pa,
2315
+ GFP_KERNEL);
23202316 if (!qp->ird_q_va)
23212317 return -ENOMEM;
23222318 ocrdma_build_q_pages(&cmd->ird_addr[0], dev->attr.num_ird_pages,
....@@ -2496,7 +2492,7 @@
24962492 int status;
24972493 struct rdma_ah_attr *ah_attr = &attrs->ah_attr;
24982494 const struct ib_gid_attr *sgid_attr;
2499
- u32 vlan_id = 0xFFFF;
2495
+ u16 vlan_id = 0xFFFF;
25002496 u8 mac_addr[6], hdr_type;
25012497 union {
25022498 struct sockaddr_in _sockaddr_in;
....@@ -2525,8 +2521,9 @@
25252521 sizeof(cmd->params.dgid));
25262522
25272523 sgid_attr = ah_attr->grh.sgid_attr;
2528
- vlan_id = rdma_vlan_dev_vlan_id(sgid_attr->ndev);
2529
- memcpy(mac_addr, sgid_attr->ndev->dev_addr, ETH_ALEN);
2524
+ status = rdma_read_gid_l2_fields(sgid_attr, &vlan_id, &mac_addr[0]);
2525
+ if (status)
2526
+ return status;
25302527
25312528 qp->sgid_idx = grh->sgid_index;
25322529 memcpy(&cmd->params.sgid[0], &sgid_attr->gid.raw[0],
....@@ -2862,21 +2859,19 @@
28622859 return status;
28632860 }
28642861
2865
-int ocrdma_mbx_destroy_srq(struct ocrdma_dev *dev, struct ocrdma_srq *srq)
2862
+void ocrdma_mbx_destroy_srq(struct ocrdma_dev *dev, struct ocrdma_srq *srq)
28662863 {
2867
- int status = -ENOMEM;
28682864 struct ocrdma_destroy_srq *cmd;
28692865 struct pci_dev *pdev = dev->nic_info.pdev;
28702866 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_DELETE_SRQ, sizeof(*cmd));
28712867 if (!cmd)
2872
- return status;
2868
+ return;
28732869 cmd->id = srq->id;
2874
- status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd);
2870
+ ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd);
28752871 if (srq->rq.va)
28762872 dma_free_coherent(&pdev->dev, srq->rq.len,
28772873 srq->rq.va, srq->rq.pa);
28782874 kfree(cmd);
2879
- return status;
28802875 }
28812876
28822877 static int ocrdma_mbx_get_dcbx_config(struct ocrdma_dev *dev, u32 ptype,
....@@ -2906,7 +2901,6 @@
29062901 mqe_sge->pa_hi = (u32) upper_32_bits(pa);
29072902 mqe_sge->len = cmd.hdr.pyld_len;
29082903
2909
- memset(req, 0, sizeof(struct ocrdma_get_dcbx_cfg_req));
29102904 ocrdma_init_mch(&req->hdr, OCRDMA_CMD_GET_DCBX_CONFIG,
29112905 OCRDMA_SUBSYS_DCBX, cmd.hdr.pyld_len);
29122906 req->param_type = ptype;
....@@ -3066,13 +3060,12 @@
30663060 return status;
30673061 }
30683062
3069
-int ocrdma_free_av(struct ocrdma_dev *dev, struct ocrdma_ah *ah)
3063
+void ocrdma_free_av(struct ocrdma_dev *dev, struct ocrdma_ah *ah)
30703064 {
30713065 unsigned long flags;
30723066 spin_lock_irqsave(&dev->av_tbl.lock, flags);
30733067 ah->av->valid = 0;
30743068 spin_unlock_irqrestore(&dev->av_tbl.lock, flags);
3075
- return 0;
30763069 }
30773070
30783071 static int ocrdma_create_eqs(struct ocrdma_dev *dev)