RDMA/rxe: Merge normal and retry atomic flows
authorBob Pearson <rpearsonhpe@gmail.com>
Mon, 6 Jun 2022 14:38:37 +0000 (09:38 -0500)
committerJason Gunthorpe <jgg@nvidia.com>
Thu, 30 Jun 2022 17:00:21 +0000 (14:00 -0300)
commitdc1848388137d20e5786b976caa49a26889f36f3
treed319b72072ea3323e784c1beec215291dcb62a08
parent8264411595fabf0455ed45badf1be612493db681
RDMA/rxe: Merge normal and retry atomic flows

Make the execution of the atomic operation in rxe_atomic_reply()
conditional on res->replay and make duplicate_request() call into
rxe_atomic_reply() to merge the two flows. This is modeled on the behavior
of read reply. Delete the skb from the atomic responder resource since it
is no longer used. Adjust the reference counting of the qp in
send_atomic_ack() for this flow.

Fixes: 8700e3e7c485 ("Soft RoCE driver")
Link: https://lore.kernel.org/r/20220606143836.3323-6-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/sw/rxe/rxe_qp.c
drivers/infiniband/sw/rxe/rxe_resp.c
drivers/infiniband/sw/rxe/rxe_verbs.h