diff options
| -rw-r--r-- | drivers/infiniband/hw/cxgb4/cq.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/cxgb4/cq.c b/drivers/infiniband/hw/cxgb4/cq.c index af684fca4a82..70371e92f2a5 100644 --- a/drivers/infiniband/hw/cxgb4/cq.c +++ b/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, | |||
| 476 | goto proc_cqe; | 476 | goto proc_cqe; |
| 477 | } | 477 | } |
| 478 | 478 | ||
| 479 | if (CQE_OPCODE(hw_cqe) == FW_RI_TERMINATE) { | ||
| 480 | ret = -EAGAIN; | ||
| 481 | goto skip_cqe; | ||
| 482 | } | ||
| 483 | |||
| 479 | /* | 484 | /* |
| 480 | * RECV completion. | 485 | * RECV completion. |
| 481 | */ | 486 | */ |
| @@ -696,6 +701,7 @@ static int c4iw_poll_cq_one(struct c4iw_cq *chp, struct ib_wc *wc) | |||
| 696 | case T4_ERR_MSN_RANGE: | 701 | case T4_ERR_MSN_RANGE: |
| 697 | case T4_ERR_IRD_OVERFLOW: | 702 | case T4_ERR_IRD_OVERFLOW: |
| 698 | case T4_ERR_OPCODE: | 703 | case T4_ERR_OPCODE: |
| 704 | case T4_ERR_INTERNAL_ERR: | ||
| 699 | wc->status = IB_WC_FATAL_ERR; | 705 | wc->status = IB_WC_FATAL_ERR; |
| 700 | break; | 706 | break; |
| 701 | case T4_ERR_SWFLUSH: | 707 | case T4_ERR_SWFLUSH: |
