RDMA/cxgb4: Always log async errors

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>
This commit is contained in:
Vipul Pandya 2013-01-07 13:11:54 +00:00 committed by Roland Dreier
parent 325abead6c
commit 04236df2a5
2 changed files with 8 additions and 6 deletions

View file

@ -1419,9 +1419,9 @@ static int rx_data(struct c4iw_dev *dev, struct sk_buff *skb)
BUG_ON(!ep->com.qp); BUG_ON(!ep->com.qp);
if (ep->com.qp->attr.state == C4IW_QP_STATE_RTS) if (ep->com.qp->attr.state == C4IW_QP_STATE_RTS)
pr_err("%s Unexpected streaming data." \ pr_err("%s Unexpected streaming data." \
" ep %p state %d tid %u status %d\n", " qpid %u ep %p state %d tid %u status %d\n",
__func__, ep, state_read(&ep->com), __func__, ep->com.qp->wq.sq.qid, ep,
ep->hwtid, status); state_read(&ep->com), ep->hwtid, status);
attrs.next_state = C4IW_QP_STATE_ERROR; attrs.next_state = C4IW_QP_STATE_ERROR;
c4iw_modify_qp(ep->com.qp->rhp, ep->com.qp, c4iw_modify_qp(ep->com.qp->rhp, ep->com.qp,
C4IW_QP_ATTR_NEXT_STATE, &attrs, 1); C4IW_QP_ATTR_NEXT_STATE, &attrs, 1);

View 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) || if ((qhp->attr.state == C4IW_QP_STATE_ERROR) ||
(qhp->attr.state == C4IW_QP_STATE_TERMINATE)) { (qhp->attr.state == C4IW_QP_STATE_TERMINATE)) {
PDBG("%s AE received after RTS - " pr_err("%s AE after RTS - qpid 0x%x opcode %d status 0x%x "\
"qp state %d qpid 0x%x status 0x%x\n", __func__, "type %d wrid.hi 0x%x wrid.lo 0x%x\n",
qhp->attr.state, qhp->wq.sq.qid, CQE_STATUS(err_cqe)); __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; return;
} }