Skip to content

Commit a8adbf7

Browse files
kwan-intcdledford
authored andcommitted
IB/hfi1: Add additional checks when handling TID RDMA READ RESP packet
In a congested fabric with adaptive routing enabled, traces show that packets could be delivered out of order, which could cause incorrect processing of stale packets. For stale TID RDMA READ RESP packets that cause KDETH EFLAGS errors, this patch adds additional checks before processing the packets. Fixes: 9905bf0 ("IB/hfi1: Add functions to receive TID RDMA READ response") Cc: <[email protected]> Reviewed-by: Mike Marciniszyn <[email protected]> Signed-off-by: Kaike Wan <[email protected]> Signed-off-by: Dennis Dalessandro <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Doug Ledford <[email protected]>
1 parent 35d5c8b commit a8adbf7

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

drivers/infiniband/hw/hfi1/tid_rdma.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2740,9 +2740,12 @@ static bool handle_read_kdeth_eflags(struct hfi1_ctxtdata *rcd,
27402740

27412741
wqe = do_rc_completion(qp, wqe, ibp);
27422742
if (qp->s_acked == qp->s_tail)
2743-
break;
2743+
goto s_unlock;
27442744
}
27452745

2746+
if (qp->s_acked == qp->s_tail)
2747+
goto s_unlock;
2748+
27462749
/* Handle the eflags for the request */
27472750
if (wqe->wr.opcode != IB_WR_TID_RDMA_READ)
27482751
goto s_unlock;

0 commit comments

Comments
 (0)