aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
diff options
context:
space:
mode:
authorNaresh Gottumukkala <bgottumukkala@emulex.com>2013-08-07 03:22:37 -0400
committerRoland Dreier <roland@purestorage.com>2013-08-12 14:00:51 -0400
commit45e86b33ec8b33f9ed41d9f9005f9e663018f8f1 (patch)
treeeca311e7455a7edba0c361afdb05996b4b42cb3e /drivers/infiniband/hw/ocrdma/ocrdma_hw.c
parent7b9b1a596e0f37b463dfe3bc36b6d035c7450ca0 (diff)
RDMA/ocrdma: Cache recv DB until QP moved to RTR
1) In post recv, don't ring the DB doorbell if the QP is in RTR state. Cache the DB calls, until the QP is moved to RTS state. 2) Add max_rd_sge support to dev->attr. 3) Code cleanup in alloc_pd path. Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/infiniband/hw/ocrdma/ocrdma_hw.c')
-rw-r--r--drivers/infiniband/hw/ocrdma/ocrdma_hw.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
index c4bb29c9d48a..97bb1ce8d243 100644
--- a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
+++ b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
@@ -992,6 +992,9 @@ static void ocrdma_get_attr(struct ocrdma_dev *dev,
992 attr->max_srq_sge = (rsp->max_srq_rqe_sge & 992 attr->max_srq_sge = (rsp->max_srq_rqe_sge &
993 OCRDMA_MBX_QUERY_CFG_MAX_SRQ_SGE_MASK) >> 993 OCRDMA_MBX_QUERY_CFG_MAX_SRQ_SGE_MASK) >>
994 OCRDMA_MBX_QUERY_CFG_MAX_SRQ_SGE_OFFSET; 994 OCRDMA_MBX_QUERY_CFG_MAX_SRQ_SGE_OFFSET;
995 attr->max_rdma_sge = (rsp->max_write_send_sge &
996 OCRDMA_MBX_QUERY_CFG_MAX_WRITE_SGE_MASK) >>
997 OCRDMA_MBX_QUERY_CFG_MAX_WRITE_SGE_SHIFT;
995 attr->max_ord_per_qp = (rsp->max_ird_ord_per_qp & 998 attr->max_ord_per_qp = (rsp->max_ird_ord_per_qp &
996 OCRDMA_MBX_QUERY_CFG_MAX_ORD_PER_QP_MASK) >> 999 OCRDMA_MBX_QUERY_CFG_MAX_ORD_PER_QP_MASK) >>
997 OCRDMA_MBX_QUERY_CFG_MAX_ORD_PER_QP_SHIFT; 1000 OCRDMA_MBX_QUERY_CFG_MAX_ORD_PER_QP_SHIFT;