RDMA/cxgb4: Always log async errors
authorVipul Pandya <vipul@chelsio.com>
Mon, 7 Jan 2013 13:11:54 +0000 (13:11 +0000)
committerRoland Dreier <roland@purestorage.com>
Thu, 14 Feb 2013 23:51:56 +0000 (15:51 -0800)
Log AEs even if the QP isn't in RTS.  It is useful information.

Signed-off-by: Vipul Pandya <vipul@chelsio.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/cxgb4/cm.c
drivers/infiniband/hw/cxgb4/ev.c

index ebcdb3f..5989991 100644 (file)
@@ -1419,9 +1419,9 @@ static int rx_data(struct c4iw_dev *dev, struct sk_buff *skb)
                BUG_ON(!ep->com.qp);
                if (ep->com.qp->attr.state == C4IW_QP_STATE_RTS)
                        pr_err("%s Unexpected streaming data." \
-                              " ep %p state %d tid %u status %d\n",
-                              __func__, ep, state_read(&ep->com),
-                              ep->hwtid, status);
+                              " qpid %u ep %p state %d tid %u status %d\n",
+                              __func__, ep->com.qp->wq.sq.qid, ep,
+                              state_read(&ep->com), ep->hwtid, status);
                attrs.next_state = C4IW_QP_STATE_ERROR;
                c4iw_modify_qp(ep->com.qp->rhp, ep->com.qp,
                               C4IW_QP_ATTR_NEXT_STATE, &attrs, 1);
index cf2f6b4..1a840b2 100644 (file)
@@ -46,9 +46,11 @@ static void post_qp_event(struct c4iw_dev *dev, struct c4iw_cq *chp,
 
        if ((qhp->attr.state == C4IW_QP_STATE_ERROR) ||
            (qhp->attr.state == C4IW_QP_STATE_TERMINATE)) {
-               PDBG("%s AE received after RTS - "
-                    "qp state %d qpid 0x%x status 0x%x\n", __func__,
-                    qhp->attr.state, qhp->wq.sq.qid, CQE_STATUS(err_cqe));
+               pr_err("%s AE after RTS - qpid 0x%x opcode %d status 0x%x "\
+                      "type %d wrid.hi 0x%x wrid.lo 0x%x\n",
+                      __func__, CQE_QPID(err_cqe), CQE_OPCODE(err_cqe),
+                      CQE_STATUS(err_cqe), CQE_TYPE(err_cqe),
+                      CQE_WRID_HI(err_cqe), CQE_WRID_LOW(err_cqe));
                return;
        }