forked from Minki/linux
IB/ipath: Fix PSN of send WQEs after an RDMA read resend
The PSN of the first packet after an RDMA read is based on the size of the RDMA read request. This is calculated correctly for the WQE sent after the first request message but not on subsequent requests if the RDMA read is resent. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
parent
7c37d74474
commit
fab01fc560
@ -573,9 +573,8 @@ int ipath_make_rc_req(struct ipath_qp *qp)
|
|||||||
ohdr->u.rc.reth.length = cpu_to_be32(qp->s_len);
|
ohdr->u.rc.reth.length = cpu_to_be32(qp->s_len);
|
||||||
qp->s_state = OP(RDMA_READ_REQUEST);
|
qp->s_state = OP(RDMA_READ_REQUEST);
|
||||||
hwords += sizeof(ohdr->u.rc.reth) / sizeof(u32);
|
hwords += sizeof(ohdr->u.rc.reth) / sizeof(u32);
|
||||||
bth2 = qp->s_psn++ & IPATH_PSN_MASK;
|
bth2 = qp->s_psn & IPATH_PSN_MASK;
|
||||||
if (ipath_cmp24(qp->s_psn, qp->s_next_psn) > 0)
|
qp->s_psn = wqe->lpsn + 1;
|
||||||
qp->s_next_psn = qp->s_psn;
|
|
||||||
ss = NULL;
|
ss = NULL;
|
||||||
len = 0;
|
len = 0;
|
||||||
qp->s_cur++;
|
qp->s_cur++;
|
||||||
|
Loading…
Reference in New Issue
Block a user