diff options
author | Joachim Fenkes <fenkes@de.ibm.com> | 2008-06-06 11:21:33 -0700 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2008-06-06 11:21:33 -0700 |
commit | 088af1543c611f4200658250b6a4467b7eb496a6 (patch) | |
tree | cdfab381b7c395038178303edca0d5ae6469f361 /drivers/infiniband | |
parent | 5f6256066790e1a9a90438f5eece73069c531ffc (diff) | |
download | op-kernel-dev-088af1543c611f4200658250b6a4467b7eb496a6.zip op-kernel-dev-088af1543c611f4200658250b6a4467b7eb496a6.tar.gz |
IB/ehca: Reject send WRs only for RESET, INIT and RTR state
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_reqs.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/infiniband/hw/ehca/ehca_reqs.c b/drivers/infiniband/hw/ehca/ehca_reqs.c index bbe0436..f093b00 100644 --- a/drivers/infiniband/hw/ehca/ehca_reqs.c +++ b/drivers/infiniband/hw/ehca/ehca_reqs.c @@ -421,8 +421,10 @@ int ehca_post_send(struct ib_qp *qp, int ret = 0; unsigned long flags; - if (unlikely(my_qp->state != IB_QPS_RTS)) { - ehca_err(qp->device, "QP not in RTS state qpn=%x", qp->qp_num); + /* Reject WR if QP is in RESET, INIT or RTR state */ + if (unlikely(my_qp->state < IB_QPS_RTS)) { + ehca_err(qp->device, "Invalid QP state qp_state=%d qpn=%x", + my_qp->state, qp->qp_num); return -EINVAL; } |