提交 04236df2 编写于 作者: V Vipul Pandya 提交者: Roland Dreier

RDMA/cxgb4: Always log async errors

Log AEs even if the QP isn't in RTS.  It is useful information.
Signed-off-by: NVipul Pandya <vipul@chelsio.com>
Signed-off-by: NRoland Dreier <roland@purestorage.com>
上级 325abead
...@@ -1419,9 +1419,9 @@ static int rx_data(struct c4iw_dev *dev, struct sk_buff *skb) ...@@ -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);
......
...@@ -46,9 +46,11 @@ static void post_qp_event(struct c4iw_dev *dev, struct c4iw_cq *chp, ...@@ -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;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册