diff options
author | Steve Wise <swise@opengridcomputing.com> | 2009-02-10 19:38:57 -0500 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2009-02-10 19:38:57 -0500 |
commit | 42fb61f02f9bdc476c7a76d3cce0400d989f44c5 (patch) | |
tree | 1b65628292881e77e81f6e1bdc6aed64b38f0646 /drivers/infiniband/hw/cxgb3/cxio_wr.h | |
parent | 900f4c16c338f742b80f3aa500e12ceb017e86af (diff) |
RDMA/cxgb3: Connection termination fixes
The poll and flush code needs to handle all send opcodes: SEND,
SEND_WITH_SE, SEND_WITH_INV, and SEND_WITH_SE_INV.
Ignore TERM indications if the connection already gone.
Ignore HW receive completions if the RQ is empty.
Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw/cxgb3/cxio_wr.h')
-rw-r--r-- | drivers/infiniband/hw/cxgb3/cxio_wr.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/cxgb3/cxio_wr.h b/drivers/infiniband/hw/cxgb3/cxio_wr.h index 04618f7bfbb3..ff9be1a13106 100644 --- a/drivers/infiniband/hw/cxgb3/cxio_wr.h +++ b/drivers/infiniband/hw/cxgb3/cxio_wr.h | |||
@@ -604,6 +604,12 @@ struct t3_cqe { | |||
604 | #define CQE_STATUS(x) (G_CQE_STATUS(be32_to_cpu((x).header))) | 604 | #define CQE_STATUS(x) (G_CQE_STATUS(be32_to_cpu((x).header))) |
605 | #define CQE_OPCODE(x) (G_CQE_OPCODE(be32_to_cpu((x).header))) | 605 | #define CQE_OPCODE(x) (G_CQE_OPCODE(be32_to_cpu((x).header))) |
606 | 606 | ||
607 | #define CQE_SEND_OPCODE(x)( \ | ||
608 | (G_CQE_OPCODE(be32_to_cpu((x).header)) == T3_SEND) || \ | ||
609 | (G_CQE_OPCODE(be32_to_cpu((x).header)) == T3_SEND_WITH_SE) || \ | ||
610 | (G_CQE_OPCODE(be32_to_cpu((x).header)) == T3_SEND_WITH_INV) || \ | ||
611 | (G_CQE_OPCODE(be32_to_cpu((x).header)) == T3_SEND_WITH_SE_INV)) | ||
612 | |||
607 | #define CQE_LEN(x) (be32_to_cpu((x).len)) | 613 | #define CQE_LEN(x) (be32_to_cpu((x).len)) |
608 | 614 | ||
609 | /* used for RQ completion processing */ | 615 | /* used for RQ completion processing */ |