Преглед на файлове

RDMA/cxgb4: Ignore TERMINATE CQEs

T4 incorrectly inserts TERM CQEs into the CQ.  Silently ignore them.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Steve Wise преди 14 години
родител
ревизия
6ff0e343b3
променени са 1 файла, в които са добавени 6 реда и са изтрити 0 реда
  1. 6 0
      drivers/infiniband/hw/cxgb4/cq.c

+ 6 - 0
drivers/infiniband/hw/cxgb4/cq.c

@@ -476,6 +476,11 @@ static int poll_cq(struct t4_wq *wq, struct t4_cq *cq, struct t4_cqe *cqe,
 		goto proc_cqe;
 		goto proc_cqe;
 	}
 	}
 
 
+	if (CQE_OPCODE(hw_cqe) == FW_RI_TERMINATE) {
+		ret = -EAGAIN;
+		goto skip_cqe;
+	}
+
 	/*
 	/*
 	 * RECV completion.
 	 * RECV completion.
 	 */
 	 */
@@ -696,6 +701,7 @@ static int c4iw_poll_cq_one(struct c4iw_cq *chp, struct ib_wc *wc)
 		case T4_ERR_MSN_RANGE:
 		case T4_ERR_MSN_RANGE:
 		case T4_ERR_IRD_OVERFLOW:
 		case T4_ERR_IRD_OVERFLOW:
 		case T4_ERR_OPCODE:
 		case T4_ERR_OPCODE:
+		case T4_ERR_INTERNAL_ERR:
 			wc->status = IB_WC_FATAL_ERR;
 			wc->status = IB_WC_FATAL_ERR;
 			break;
 			break;
 		case T4_ERR_SWFLUSH:
 		case T4_ERR_SWFLUSH: