On 1/17/23 09:09, Jason Gunthorpe wrote: > On Mon, Jan 16, 2023 at 05:56:00PM -0600, Bob Pearson wrote: > >> + err = rxe_mr_do_atomic_op(mr, iova, pkt->opcode, >> + atmeth_comp(pkt), >> + atmeth_swap_add(pkt), >> + &res->atomic.orig_val); >> + if (unlikely(err)) { >> + if (err == -RXE_ERR_NOT_ALIGNED) >> + return RESPST_ERR_MISALIGNED_ATOMIC; >> + else >> + return RESPST_ERR_RKEY_VIOLATION; > > Why not just return these RESPST_ constants directly from > rxe_mr_do_atomic_op ? > > Jason The main reason is that the responder state machine is fairly complicated and hiding bits of it in other files just makes it more difficult to follow. Originally all the code was inline here but I felt it would be better to keep all the mr specific detail in one file. Bob