diff options
author | Bryan O'Sullivan <bos@pathscale.com> | 2006-08-25 14:24:44 -0400 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2006-09-22 18:22:38 -0400 |
commit | a78aa6fb156f9954562c9539aeb25dbec1ffca10 (patch) | |
tree | 45ce52f85ad0453f39d6f2add8c92f665f3577a6 /drivers/infiniband | |
parent | 0b81e4f79af8322c7142701982f40d1431dedf19 (diff) |
IB/ipath: handle sq_sig_all field correctly
Signed-off-by: Bryan O'Sullivan <bryan.osullivan@qlogic.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_qp.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_qp.c b/drivers/infiniband/hw/ipath/ipath_qp.c index 607ba72af2fa..224b0f40767f 100644 --- a/drivers/infiniband/hw/ipath/ipath_qp.c +++ b/drivers/infiniband/hw/ipath/ipath_qp.c | |||
@@ -606,9 +606,10 @@ int ipath_query_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, | |||
606 | init_attr->recv_cq = qp->ibqp.recv_cq; | 606 | init_attr->recv_cq = qp->ibqp.recv_cq; |
607 | init_attr->srq = qp->ibqp.srq; | 607 | init_attr->srq = qp->ibqp.srq; |
608 | init_attr->cap = attr->cap; | 608 | init_attr->cap = attr->cap; |
609 | init_attr->sq_sig_type = | 609 | if (qp->s_flags & (1 << IPATH_S_SIGNAL_REQ_WR)) |
610 | (qp->s_flags & (1 << IPATH_S_SIGNAL_REQ_WR)) | 610 | init_attr->sq_sig_type = IB_SIGNAL_REQ_WR; |
611 | ? IB_SIGNAL_REQ_WR : 0; | 611 | else |
612 | init_attr->sq_sig_type = IB_SIGNAL_ALL_WR; | ||
612 | init_attr->qp_type = qp->ibqp.qp_type; | 613 | init_attr->qp_type = qp->ibqp.qp_type; |
613 | init_attr->port_num = 1; | 614 | init_attr->port_num = 1; |
614 | return 0; | 615 | return 0; |
@@ -776,8 +777,10 @@ struct ib_qp *ipath_create_qp(struct ib_pd *ibpd, | |||
776 | qp->s_wq = swq; | 777 | qp->s_wq = swq; |
777 | qp->s_size = init_attr->cap.max_send_wr + 1; | 778 | qp->s_size = init_attr->cap.max_send_wr + 1; |
778 | qp->s_max_sge = init_attr->cap.max_send_sge; | 779 | qp->s_max_sge = init_attr->cap.max_send_sge; |
779 | qp->s_flags = init_attr->sq_sig_type == IB_SIGNAL_REQ_WR ? | 780 | if (init_attr->sq_sig_type == IB_SIGNAL_REQ_WR) |
780 | 1 << IPATH_S_SIGNAL_REQ_WR : 0; | 781 | qp->s_flags = 1 << IPATH_S_SIGNAL_REQ_WR; |
782 | else | ||
783 | qp->s_flags = 0; | ||
781 | dev = to_idev(ibpd->device); | 784 | dev = to_idev(ibpd->device); |
782 | err = ipath_alloc_qpn(&dev->qp_table, qp, | 785 | err = ipath_alloc_qpn(&dev->qp_table, qp, |
783 | init_attr->qp_type); | 786 | init_attr->qp_type); |