diff options
author | Steve Wise <swise@opengridcomputing.com> | 2007-05-14 14:27:27 -0400 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2007-07-09 23:12:26 -0400 |
commit | de3d353072f9342f04112ba0504c3e294220cb8f (patch) | |
tree | 94c07283ea583f72544eb76795aa127bef6c5aa9 /drivers/infiniband/hw/cxgb3/iwch_qp.c | |
parent | 149983af609e8f5c57157467baf8545d17b8a6a1 (diff) |
RDMA/cxgb3: Streaming -> RDMA mode transition fixes
Due to a HW issue, our current scheme to transition the connection from
streaming to rdma mode is broken on the passive side. The firmware
and driver now support a new transition scheme for the passive side:
- driver posts rdma_init_wr (now including the initial receive seqno)
- driver posts last streaming message via TX_DATA message (MPA start
response)
- uP atomically sends the last streaming message and transitions the
tcb to rdma mode.
- driver waits for wr_ack indicating the last streaming message was ACKed.
NOTE: This change also bumps the required firmware version to 4.3.
Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw/cxgb3/iwch_qp.c')
-rw-r--r-- | drivers/infiniband/hw/cxgb3/iwch_qp.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/cxgb3/iwch_qp.c b/drivers/infiniband/hw/cxgb3/iwch_qp.c index 714dddbc9a98..679b7c179273 100644 --- a/drivers/infiniband/hw/cxgb3/iwch_qp.c +++ b/drivers/infiniband/hw/cxgb3/iwch_qp.c | |||
@@ -732,6 +732,7 @@ static int rdma_init(struct iwch_dev *rhp, struct iwch_qp *qhp, | |||
732 | init_attr.qp_dma_addr = qhp->wq.dma_addr; | 732 | init_attr.qp_dma_addr = qhp->wq.dma_addr; |
733 | init_attr.qp_dma_size = (1UL << qhp->wq.size_log2); | 733 | init_attr.qp_dma_size = (1UL << qhp->wq.size_log2); |
734 | init_attr.flags = rqes_posted(qhp) ? RECVS_POSTED : 0; | 734 | init_attr.flags = rqes_posted(qhp) ? RECVS_POSTED : 0; |
735 | init_attr.irs = qhp->ep->rcv_seq; | ||
735 | PDBG("%s init_attr.rq_addr 0x%x init_attr.rq_size = %d " | 736 | PDBG("%s init_attr.rq_addr 0x%x init_attr.rq_size = %d " |
736 | "flags 0x%x qpcaps 0x%x\n", __FUNCTION__, | 737 | "flags 0x%x qpcaps 0x%x\n", __FUNCTION__, |
737 | init_attr.rq_addr, init_attr.rq_size, | 738 | init_attr.rq_addr, init_attr.rq_size, |