[for-next 2/4] RDMA/ionic: preserve atomic operands in the send WQE

From: Abhijit Gangurde

Date: Sat Nov 07 2026 - 10:18:48 EST


ionic_prep_common() writes the common length and scatter/gather element
into the same body bytes as the atomic operands. Finish the atomic WQE
with ionic_prep_base() instead.

Fixes: b83c62055b6f ("RDMA/ionic: Register device ops for datapath")
Signed-off-by: Abhijit Gangurde <abhijit.gangurde@xxxxxxx>
---
drivers/infiniband/hw/ionic/ionic_datapath.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/infiniband/hw/ionic/ionic_datapath.c b/drivers/infiniband/hw/ionic/ionic_datapath.c
index f1354dae089c..5b6f10256b49 100644
--- a/drivers/infiniband/hw/ionic/ionic_datapath.c
+++ b/drivers/infiniband/hw/ionic/ionic_datapath.c
@@ -1054,7 +1054,10 @@ static int ionic_prep_atomic(struct ionic_qp *qp,
wqe->atomic.sge.len = cpu_to_be32(8);
wqe->atomic.sge.lkey = cpu_to_be32(wr->wr.sg_list[0].lkey);

- return ionic_prep_common(qp, &wr->wr, meta, wqe);
+ meta->len = 8;
+ ionic_prep_base(qp, &wr->wr, meta, wqe);
+
+ return 0;
}

static int ionic_prep_inv(struct ionic_qp *qp,
--
2.43.0