aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/infiniband')
-rw-r--r--drivers/infiniband/hw/mthca/mthca_qp.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/infiniband/hw/mthca/mthca_qp.c b/drivers/infiniband/hw/mthca/mthca_qp.c
index e826c9ff5d70..d786ef443614 100644
--- a/drivers/infiniband/hw/mthca/mthca_qp.c
+++ b/drivers/infiniband/hw/mthca/mthca_qp.c
@@ -747,9 +747,7 @@ int mthca_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, int attr_mask)
747 qp_context->wqe_lkey = cpu_to_be32(qp->mr.ibmr.lkey); 747 qp_context->wqe_lkey = cpu_to_be32(qp->mr.ibmr.lkey);
748 qp_context->params1 = cpu_to_be32((MTHCA_ACK_REQ_FREQ << 28) | 748 qp_context->params1 = cpu_to_be32((MTHCA_ACK_REQ_FREQ << 28) |
749 (MTHCA_FLIGHT_LIMIT << 24) | 749 (MTHCA_FLIGHT_LIMIT << 24) |
750 MTHCA_QP_BIT_SRE | 750 MTHCA_QP_BIT_SWE);
751 MTHCA_QP_BIT_SWE |
752 MTHCA_QP_BIT_SAE);
753 if (qp->sq_policy == IB_SIGNAL_ALL_WR) 751 if (qp->sq_policy == IB_SIGNAL_ALL_WR)
754 qp_context->params1 |= cpu_to_be32(MTHCA_QP_BIT_SSC); 752 qp_context->params1 |= cpu_to_be32(MTHCA_QP_BIT_SSC);
755 if (attr_mask & IB_QP_RETRY_CNT) { 753 if (attr_mask & IB_QP_RETRY_CNT) {
@@ -758,9 +756,13 @@ int mthca_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, int attr_mask)
758 } 756 }
759 757
760 if (attr_mask & IB_QP_MAX_QP_RD_ATOMIC) { 758 if (attr_mask & IB_QP_MAX_QP_RD_ATOMIC) {
761 if (attr->max_rd_atomic) 759 if (attr->max_rd_atomic) {
760 qp_context->params1 |=
761 cpu_to_be32(MTHCA_QP_BIT_SRE |
762 MTHCA_QP_BIT_SAE);
762 qp_context->params1 |= 763 qp_context->params1 |=
763 cpu_to_be32(fls(attr->max_rd_atomic - 1) << 21); 764 cpu_to_be32(fls(attr->max_rd_atomic - 1) << 21);
765 }
764 qp_param->opt_param_mask |= cpu_to_be32(MTHCA_QP_OPTPAR_SRA_MAX); 766 qp_param->opt_param_mask |= cpu_to_be32(MTHCA_QP_OPTPAR_SRA_MAX);
765 } 767 }
766 768