diff options
author | Andrew Boyer <andrew.boyer@dell.com> | 2016-12-22 14:54:36 +0100 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2016-12-22 17:36:12 +0100 |
commit | 37b36193946e4fe7af2c3965e394eb311ab6601d (patch) | |
tree | d5f2f498c9f8dcb9d5981e8f8affa5def19490b4 /drivers/infiniband | |
parent | qedr: Always notify the verb consumer of flushed CQEs (diff) | |
download | linux-37b36193946e4fe7af2c3965e394eb311ab6601d.tar.xz linux-37b36193946e4fe7af2c3965e394eb311ab6601d.zip |
IB/rxe: Use BTH_PSN_MASK when ACKing duplicate sends
Signed-off-by: Andrew Boyer <andrew.boyer@dell.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/sw/rxe/rxe_resp.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/infiniband/sw/rxe/rxe_resp.c b/drivers/infiniband/sw/rxe/rxe_resp.c index 7a36ec9dbc0c..3435efff8799 100644 --- a/drivers/infiniband/sw/rxe/rxe_resp.c +++ b/drivers/infiniband/sw/rxe/rxe_resp.c @@ -1070,12 +1070,13 @@ static enum resp_states duplicate_request(struct rxe_qp *qp, struct rxe_pkt_info *pkt) { enum resp_states rc; + u32 prev_psn = (qp->resp.psn - 1) & BTH_PSN_MASK; if (pkt->mask & RXE_SEND_MASK || pkt->mask & RXE_WRITE_MASK) { /* SEND. Ack again and cleanup. C9-105. */ if (bth_ack(pkt)) - send_ack(qp, pkt, AETH_ACK_UNLIMITED, qp->resp.psn - 1); + send_ack(qp, pkt, AETH_ACK_UNLIMITED, prev_psn); rc = RESPST_CLEANUP; goto out; } else if (pkt->mask & RXE_READ_MASK) { |