diff options
author | Ralph Campbell <ralph.campbell@qlogic.com> | 2008-12-05 11:13:18 -0800 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2008-12-05 11:13:18 -0800 |
commit | fab01fc56063dafcc083f481ac0f9e6b5a576dd6 (patch) | |
tree | 8b1063ec87ec440b3bc85efe31970948087ad818 /drivers/infiniband/hw | |
parent | 7c37d74474c8ee8ddcd5a2d2a9571d4a1290c844 (diff) | |
download | kernel_goldelico_gta04-fab01fc56063dafcc083f481ac0f9e6b5a576dd6.zip kernel_goldelico_gta04-fab01fc56063dafcc083f481ac0f9e6b5a576dd6.tar.gz kernel_goldelico_gta04-fab01fc56063dafcc083f481ac0f9e6b5a576dd6.tar.bz2 |
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>
Diffstat (limited to 'drivers/infiniband/hw')
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_rc.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_rc.c b/drivers/infiniband/hw/ipath/ipath_rc.c index 7b93cda..9170710 100644 --- a/drivers/infiniband/hw/ipath/ipath_rc.c +++ b/drivers/infiniband/hw/ipath/ipath_rc.c @@ -573,9 +573,8 @@ int ipath_make_rc_req(struct ipath_qp *qp) ohdr->u.rc.reth.length = cpu_to_be32(qp->s_len); qp->s_state = OP(RDMA_READ_REQUEST); hwords += sizeof(ohdr->u.rc.reth) / sizeof(u32); - bth2 = qp->s_psn++ & IPATH_PSN_MASK; - if (ipath_cmp24(qp->s_psn, qp->s_next_psn) > 0) - qp->s_next_psn = qp->s_psn; + bth2 = qp->s_psn & IPATH_PSN_MASK; + qp->s_psn = wqe->lpsn + 1; ss = NULL; len = 0; qp->s_cur++; |