RDMA/ocrdma: Increase STAG array size
authorNaresh Gottumukkala <bgottumukkala@emulex.com>
Mon, 26 Aug 2013 09:57:46 +0000 (15:27 +0530)
committerRoland Dreier <roland@purestorage.com>
Tue, 3 Sep 2013 04:18:42 +0000 (21:18 -0700)
1) Increase STAG Array size.
2) Max inline data size should be set to the same value
   used during QP creation
3) Set max_sge_rd to zero since we dont support RD transport in our adapters.
4) Max cqes reported in ibv_devinfo should be from QUERY_CONFIG.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/ocrdma/ocrdma_hw.c
drivers/infiniband/hw/ocrdma/ocrdma_sli.h
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c

index 618c2124e619d4b037f38f3dc66b9715eb54841e..3f027552a1a13df1309b811dd8a8b78d0a2c5837 100644 (file)
@@ -994,6 +994,9 @@ static void ocrdma_get_attr(struct ocrdma_dev *dev,
        attr->max_num_mr_pbl = rsp->max_num_mr_pbl;
        attr->max_cqe = rsp->max_cq_cqes_per_cq &
                        OCRDMA_MBX_QUERY_CFG_MAX_CQES_PER_CQ_MASK;
+       attr->max_cq = (rsp->max_cq_cqes_per_cq &
+                       OCRDMA_MBX_QUERY_CFG_MAX_CQ_MASK) >>
+                       OCRDMA_MBX_QUERY_CFG_MAX_CQ_OFFSET;
        attr->wqe_size = ((rsp->wqe_rqe_stride_max_dpp_cqs &
                OCRDMA_MBX_QUERY_CFG_MAX_WQE_SIZE_MASK) >>
                OCRDMA_MBX_QUERY_CFG_MAX_WQE_SIZE_OFFSET) *
@@ -1026,7 +1029,6 @@ static int ocrdma_check_fw_config(struct ocrdma_dev *dev,
                return -EINVAL;
        dev->base_eqid = conf->base_eqid;
        dev->max_eq = conf->max_eq;
-       dev->attr.max_cq = OCRDMA_MAX_CQ - 1;
        return 0;
 }
 
index 1e2992fee4be680fca1f8e91a92719b1de63028c..35c61080ae1eaa6477f5a96004b79f86abc5c991 100644 (file)
@@ -91,7 +91,7 @@ enum {
 
 #define OCRDMA_MAX_QP    2048
 #define OCRDMA_MAX_CQ    2048
-#define OCRDMA_MAX_STAG  2048
+#define OCRDMA_MAX_STAG  8192
 
 enum {
        OCRDMA_DB_RQ_OFFSET             = 0xE0,
index e554fc258a68433e9614775a4bb073864f1cec6d..e934073e70524e8ab362a5789521e77265cf413d 100644 (file)
@@ -85,7 +85,7 @@ int ocrdma_query_device(struct ib_device *ibdev, struct ib_device_attr *attr)
                                        IB_DEVICE_LOCAL_DMA_LKEY |
                                        IB_DEVICE_MEM_MGT_EXTENSIONS;
        attr->max_sge = min(dev->attr.max_send_sge, dev->attr.max_srq_sge);
-       attr->max_sge_rd = dev->attr.max_rdma_sge;
+       attr->max_sge_rd = 0;
        attr->max_cq = dev->attr.max_cq;
        attr->max_cqe = dev->attr.max_cqe;
        attr->max_mr = dev->attr.max_mr;
@@ -1365,7 +1365,7 @@ int ocrdma_query_qp(struct ib_qp *ibqp,
        qp_attr->cap.max_recv_wr = qp->rq.max_cnt - 1;
        qp_attr->cap.max_send_sge = qp->sq.max_sges;
        qp_attr->cap.max_recv_sge = qp->rq.max_sges;
-       qp_attr->cap.max_inline_data = dev->attr.max_inline_data;
+       qp_attr->cap.max_inline_data = qp->max_inline_data;
        qp_init_attr->cap = qp_attr->cap;
        memcpy(&qp_attr->ah_attr.grh.dgid, &params.dgid[0],
               sizeof(params.dgid));