]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
RDMA/cxgb4: Ignore TERMINATE CQEs
authorSteve Wise <swise@opengridcomputing.com>
Fri, 10 Sep 2010 16:15:04 +0000 (11:15 -0500)
committerRoland Dreier <rolandd@cisco.com>
Tue, 28 Sep 2010 17:46:31 +0000 (10:46 -0700)
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>
drivers/infiniband/hw/cxgb4/cq.c

index af684fca4a8295d37879d52f328dd3a1961e4631..70371e92f2a523c17e90d99a6996bc6e649ab6b9 100644 (file)
@@ -476,6 +476,11 @@ static int poll_cq(struct t4_wq *wq, struct t4_cq *cq, struct t4_cqe *cqe,
                goto proc_cqe;
        }
 
+       if (CQE_OPCODE(hw_cqe) == FW_RI_TERMINATE) {
+               ret = -EAGAIN;
+               goto skip_cqe;
+       }
+
        /*
         * 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_IRD_OVERFLOW:
                case T4_ERR_OPCODE:
+               case T4_ERR_INTERNAL_ERR:
                        wc->status = IB_WC_FATAL_ERR;
                        break;
                case T4_ERR_SWFLUSH: