IB/hns: Fix the bug with rdma operation
authoroulijun <oulijun@huawei.com>
Sat, 10 Jun 2017 10:49:23 +0000 (18:49 +0800)
committerDoug Ledford <dledford@redhat.com>
Tue, 18 Jul 2017 01:21:28 +0000 (21:21 -0400)
When opcode of work request is RDMA read and write, it
should use rdma_wr to get remote_addr and rkey. This
patch fixes it.

Signed-off-by: Lijun Ou <oulijun@huawei.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/hns/hns_roce_hw_v1.c

index 2fe353001b0436cd762f6dc79770c5aebaa37ef9..c42e883a18a8e95d82cd0132a36d07369f779a4d 100644 (file)
@@ -228,14 +228,14 @@ int hns_roce_v1_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr,
                        switch (wr->opcode) {
                        case IB_WR_RDMA_READ:
                                ps_opcode = HNS_ROCE_WQE_OPCODE_RDMA_READ;
-                               set_raddr_seg(wqe, atomic_wr(wr)->remote_addr,
-                                             atomic_wr(wr)->rkey);
+                               set_raddr_seg(wqe,  rdma_wr(wr)->remote_addr,
+                                              rdma_wr(wr)->rkey);
                                break;
                        case IB_WR_RDMA_WRITE:
                        case IB_WR_RDMA_WRITE_WITH_IMM:
                                ps_opcode = HNS_ROCE_WQE_OPCODE_RDMA_WRITE;
-                               set_raddr_seg(wqe, atomic_wr(wr)->remote_addr,
-                                             atomic_wr(wr)->rkey);
+                               set_raddr_seg(wqe,  rdma_wr(wr)->remote_addr,
+                                             rdma_wr(wr)->rkey);
                                break;
                        case IB_WR_SEND:
                        case IB_WR_SEND_WITH_INV: