aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/ipath/ipath_verbs.c
diff options
context:
space:
mode:
authorRalph Campbell <ralph.campbell@qlogic.com>2008-05-13 14:40:25 -0400
committerRoland Dreier <rolandd@cisco.com>2008-05-13 14:40:25 -0400
commit53dc1ca194c062aa9771e194047f27ec1ca592df (patch)
tree4cf0fe73ea76f02f871d5e6def040a869b224f00 /drivers/infiniband/hw/ipath/ipath_verbs.c
parentdd37818dbdf8e51d0288c0197c351c005ffcdbdb (diff)
IB/ipath: Fix RC and UC error handling
When errors are detected in RC, the QP should transition to the IB_QPS_ERR state, not the IB_QPS_SQE state. Also, when the error is on the responder side, the receive work completion error was incorrect (remote vs. local). Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw/ipath/ipath_verbs.c')
-rw-r--r--drivers/infiniband/hw/ipath/ipath_verbs.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_verbs.c b/drivers/infiniband/hw/ipath/ipath_verbs.c
index 5015cd2e57bd..22bb42dc8f73 100644
--- a/drivers/infiniband/hw/ipath/ipath_verbs.c
+++ b/drivers/infiniband/hw/ipath/ipath_verbs.c
@@ -744,12 +744,10 @@ static void ipath_ib_timer(struct ipath_ibdev *dev)
744 744
745 /* XXX What if timer fires again while this is running? */ 745 /* XXX What if timer fires again while this is running? */
746 for (qp = resend; qp != NULL; qp = qp->timer_next) { 746 for (qp = resend; qp != NULL; qp = qp->timer_next) {
747 struct ib_wc wc;
748
749 spin_lock_irqsave(&qp->s_lock, flags); 747 spin_lock_irqsave(&qp->s_lock, flags);
750 if (qp->s_last != qp->s_tail && qp->state == IB_QPS_RTS) { 748 if (qp->s_last != qp->s_tail && qp->state == IB_QPS_RTS) {
751 dev->n_timeouts++; 749 dev->n_timeouts++;
752 ipath_restart_rc(qp, qp->s_last_psn + 1, &wc); 750 ipath_restart_rc(qp, qp->s_last_psn + 1);
753 } 751 }
754 spin_unlock_irqrestore(&qp->s_lock, flags); 752 spin_unlock_irqrestore(&qp->s_lock, flags);
755 753