diff options
Diffstat (limited to 'drivers/infiniband/hw/cxgb3/iwch_cm.c')
-rw-r--r-- | drivers/infiniband/hw/cxgb3/iwch_cm.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/cxgb3/iwch_cm.c b/drivers/infiniband/hw/cxgb3/iwch_cm.c index 44e936e48a31..8699947aaf6c 100644 --- a/drivers/infiniband/hw/cxgb3/iwch_cm.c +++ b/drivers/infiniband/hw/cxgb3/iwch_cm.c | |||
@@ -1678,6 +1678,9 @@ static int terminate(struct t3cdev *tdev, struct sk_buff *skb, void *ctx) | |||
1678 | { | 1678 | { |
1679 | struct iwch_ep *ep = ctx; | 1679 | struct iwch_ep *ep = ctx; |
1680 | 1680 | ||
1681 | if (state_read(&ep->com) != FPDU_MODE) | ||
1682 | return CPL_RET_BUF_DONE; | ||
1683 | |||
1681 | PDBG("%s ep %p\n", __func__, ep); | 1684 | PDBG("%s ep %p\n", __func__, ep); |
1682 | skb_pull(skb, sizeof(struct cpl_rdma_terminate)); | 1685 | skb_pull(skb, sizeof(struct cpl_rdma_terminate)); |
1683 | PDBG("%s saving %d bytes of term msg\n", __func__, skb->len); | 1686 | PDBG("%s saving %d bytes of term msg\n", __func__, skb->len); |