Commit 37b36193 authored by Andrew Boyer's avatar Andrew Boyer Committed by Doug Ledford

IB/rxe: Use BTH_PSN_MASK when ACKing duplicate sends

Signed-off-by: default avatarAndrew Boyer <andrew.boyer@dell.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 74c3875c
...@@ -1070,12 +1070,13 @@ static enum resp_states duplicate_request(struct rxe_qp *qp, ...@@ -1070,12 +1070,13 @@ static enum resp_states duplicate_request(struct rxe_qp *qp,
struct rxe_pkt_info *pkt) struct rxe_pkt_info *pkt)
{ {
enum resp_states rc; enum resp_states rc;
u32 prev_psn = (qp->resp.psn - 1) & BTH_PSN_MASK;
if (pkt->mask & RXE_SEND_MASK || if (pkt->mask & RXE_SEND_MASK ||
pkt->mask & RXE_WRITE_MASK) { pkt->mask & RXE_WRITE_MASK) {
/* SEND. Ack again and cleanup. C9-105. */ /* SEND. Ack again and cleanup. C9-105. */
if (bth_ack(pkt)) 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; rc = RESPST_CLEANUP;
goto out; goto out;
} else if (pkt->mask & RXE_READ_MASK) { } else if (pkt->mask & RXE_READ_MASK) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment