diff options
author | Joachim Fenkes <fenkes@de.ibm.com> | 2007-10-16 11:24:07 -0400 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2007-10-18 00:45:17 -0400 |
commit | c0c84d566ddc8dbdd3ceab23865a688c36217338 (patch) | |
tree | 8032f63a383d95950bcc1f9ca4de3eb9f4ff0bd5 /drivers/infiniband | |
parent | 69fc507a1424ce31d2096be5b1e5b1750bdfe235 (diff) |
IB/ehca: Supply QP token for SRQ base QPs
Because hardware reports the SRQ token in RWQEs of SRQ base QPs, supply the
base QP token as SRQ token, so we can properly find the SRQ base QP.
Signed-off-by: Joachim Fenkes <fenkes@de.ibm.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/hw/ehca/ehca_qp.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/ehca/ehca_qp.c b/drivers/infiniband/hw/ehca/ehca_qp.c index e2bd62be11e7..de182648b282 100644 --- a/drivers/infiniband/hw/ehca/ehca_qp.c +++ b/drivers/infiniband/hw/ehca/ehca_qp.c | |||
@@ -451,7 +451,6 @@ static struct ehca_qp *internal_create_qp( | |||
451 | has_srq = 1; | 451 | has_srq = 1; |
452 | parms.ext_type = EQPT_SRQBASE; | 452 | parms.ext_type = EQPT_SRQBASE; |
453 | parms.srq_qpn = my_srq->real_qp_num; | 453 | parms.srq_qpn = my_srq->real_qp_num; |
454 | parms.srq_token = my_srq->token; | ||
455 | } | 454 | } |
456 | 455 | ||
457 | if (is_llqp && has_srq) { | 456 | if (is_llqp && has_srq) { |
@@ -583,6 +582,9 @@ static struct ehca_qp *internal_create_qp( | |||
583 | goto create_qp_exit1; | 582 | goto create_qp_exit1; |
584 | } | 583 | } |
585 | 584 | ||
585 | if (has_srq) | ||
586 | parms.srq_token = my_qp->token; | ||
587 | |||
586 | parms.servicetype = ibqptype2servicetype(qp_type); | 588 | parms.servicetype = ibqptype2servicetype(qp_type); |
587 | if (parms.servicetype < 0) { | 589 | if (parms.servicetype < 0) { |
588 | ret = -EINVAL; | 590 | ret = -EINVAL; |