iw_cxgb4: Only validate the MSN for successful completions
[pandora-kernel.git] / drivers / infiniband / hw / cxgb4 / cq.c
index 3e5f576..29527f6 100644 (file)
@@ -484,10 +484,10 @@ static int poll_cq(struct t4_wq *wq, struct t4_cq *cq, struct t4_cqe *cqe,
                        ret = -EAGAIN;
                        goto skip_cqe;
                }
-               if (unlikely((CQE_WRID_MSN(hw_cqe) != (wq->rq.msn)))) {
+               if (unlikely(!CQE_STATUS(hw_cqe) &&
+                            CQE_WRID_MSN(hw_cqe) != wq->rq.msn)) {
                        t4_set_wq_in_error(wq);
-                       hw_cqe->header |= htonl(V_CQE_STATUS(T4_ERR_MSN));
-                       goto proc_cqe;
+                       hw_cqe->header |= cpu_to_be32(V_CQE_STATUS(T4_ERR_MSN));
                }
                goto proc_cqe;
        }