diff options
author | Xiao Yang <yangx.jy@fujitsu.com> | 2022-12-01 15:39:27 +0100 |
---|---|---|
committer | Jason Gunthorpe <jgg@nvidia.com> | 2022-12-02 00:51:10 +0100 |
commit | 3aec427bb1499bd3325d2e251edb729a5a8643df (patch) | |
tree | eb22a928fdab6ecbfa5f0c28d8af2579a796a5eb /drivers/infiniband | |
parent | RDMA/rxe: Make responder support atomic write on RC service (diff) | |
download | linux-3aec427bb1499bd3325d2e251edb729a5a8643df.tar.xz linux-3aec427bb1499bd3325d2e251edb729a5a8643df.zip |
RDMA/rxe: Implement atomic write completion
Generate an atomic write completion when the atomic write request
has been finished.
Link: https://lore.kernel.org/r/1669905568-62-3-git-send-email-yangx.jy@fujitsu.com
Signed-off-by: Xiao Yang <yangx.jy@fujitsu.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/sw/rxe/rxe_comp.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/infiniband/sw/rxe/rxe_comp.c b/drivers/infiniband/sw/rxe/rxe_comp.c index 4dca4f8bbb5a..1c525325e271 100644 --- a/drivers/infiniband/sw/rxe/rxe_comp.c +++ b/drivers/infiniband/sw/rxe/rxe_comp.c @@ -104,6 +104,7 @@ static enum ib_wc_opcode wr_to_wc_opcode(enum ib_wr_opcode opcode) case IB_WR_LOCAL_INV: return IB_WC_LOCAL_INV; case IB_WR_REG_MR: return IB_WC_REG_MR; case IB_WR_BIND_MW: return IB_WC_BIND_MW; + case IB_WR_ATOMIC_WRITE: return IB_WC_ATOMIC_WRITE; default: return 0xff; @@ -269,6 +270,9 @@ static inline enum comp_state check_ack(struct rxe_qp *qp, if ((syn & AETH_TYPE_MASK) != AETH_ACK) return COMPST_ERROR; + if (wqe->wr.opcode == IB_WR_ATOMIC_WRITE) + return COMPST_WRITE_SEND; + fallthrough; /* (IB_OPCODE_RC_RDMA_READ_RESPONSE_MIDDLE doesn't have an AETH) */ |