Commit 0c4a0e29 authored by Lijun Ou's avatar Lijun Ou Committed by Jason Gunthorpe

RDMA/hns: Update the data type of immediate data

Because the data structure of hip08 is little endian, it needs to fix the
immediate field of wqe and cqe into __le32.
Signed-off-by: default avatarLijun Ou <oulijun@huawei.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
parent 73b4e1f4
...@@ -272,7 +272,8 @@ static int hns_roce_v2_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr, ...@@ -272,7 +272,8 @@ static int hns_roce_v2_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr,
switch (wr->opcode) { switch (wr->opcode) {
case IB_WR_SEND_WITH_IMM: case IB_WR_SEND_WITH_IMM:
case IB_WR_RDMA_WRITE_WITH_IMM: case IB_WR_RDMA_WRITE_WITH_IMM:
ud_sq_wqe->immtdata = wr->ex.imm_data; ud_sq_wqe->immtdata =
cpu_to_le32(be32_to_cpu(wr->ex.imm_data));
break; break;
default: default:
ud_sq_wqe->immtdata = 0; ud_sq_wqe->immtdata = 0;
...@@ -370,7 +371,8 @@ static int hns_roce_v2_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr, ...@@ -370,7 +371,8 @@ static int hns_roce_v2_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr,
switch (wr->opcode) { switch (wr->opcode) {
case IB_WR_SEND_WITH_IMM: case IB_WR_SEND_WITH_IMM:
case IB_WR_RDMA_WRITE_WITH_IMM: case IB_WR_RDMA_WRITE_WITH_IMM:
rc_sq_wqe->immtdata = wr->ex.imm_data; rc_sq_wqe->immtdata =
cpu_to_le32(be32_to_cpu(wr->ex.imm_data));
break; break;
case IB_WR_SEND_WITH_INV: case IB_WR_SEND_WITH_INV:
rc_sq_wqe->inv_key = rc_sq_wqe->inv_key =
...@@ -2178,7 +2180,8 @@ static int hns_roce_v2_poll_one(struct hns_roce_cq *hr_cq, ...@@ -2178,7 +2180,8 @@ static int hns_roce_v2_poll_one(struct hns_roce_cq *hr_cq,
case HNS_ROCE_V2_OPCODE_RDMA_WRITE_IMM: case HNS_ROCE_V2_OPCODE_RDMA_WRITE_IMM:
wc->opcode = IB_WC_RECV_RDMA_WITH_IMM; wc->opcode = IB_WC_RECV_RDMA_WITH_IMM;
wc->wc_flags = IB_WC_WITH_IMM; wc->wc_flags = IB_WC_WITH_IMM;
wc->ex.imm_data = cqe->immtdata; wc->ex.imm_data =
cpu_to_be32(le32_to_cpu(cqe->immtdata));
break; break;
case HNS_ROCE_V2_OPCODE_SEND: case HNS_ROCE_V2_OPCODE_SEND:
wc->opcode = IB_WC_RECV; wc->opcode = IB_WC_RECV;
...@@ -2187,7 +2190,8 @@ static int hns_roce_v2_poll_one(struct hns_roce_cq *hr_cq, ...@@ -2187,7 +2190,8 @@ static int hns_roce_v2_poll_one(struct hns_roce_cq *hr_cq,
case HNS_ROCE_V2_OPCODE_SEND_WITH_IMM: case HNS_ROCE_V2_OPCODE_SEND_WITH_IMM:
wc->opcode = IB_WC_RECV; wc->opcode = IB_WC_RECV;
wc->wc_flags = IB_WC_WITH_IMM; wc->wc_flags = IB_WC_WITH_IMM;
wc->ex.imm_data = cqe->immtdata; wc->ex.imm_data =
cpu_to_be32(le32_to_cpu(cqe->immtdata));
break; break;
case HNS_ROCE_V2_OPCODE_SEND_WITH_INV: case HNS_ROCE_V2_OPCODE_SEND_WITH_INV:
wc->opcode = IB_WC_RECV; wc->opcode = IB_WC_RECV;
......
...@@ -772,7 +772,7 @@ struct hns_roce_v2_cqe { ...@@ -772,7 +772,7 @@ struct hns_roce_v2_cqe {
__le32 byte_4; __le32 byte_4;
union { union {
__le32 rkey; __le32 rkey;
__be32 immtdata; __le32 immtdata;
}; };
__le32 byte_12; __le32 byte_12;
__le32 byte_16; __le32 byte_16;
...@@ -930,7 +930,7 @@ struct hns_roce_v2_cq_db { ...@@ -930,7 +930,7 @@ struct hns_roce_v2_cq_db {
struct hns_roce_v2_ud_send_wqe { struct hns_roce_v2_ud_send_wqe {
__le32 byte_4; __le32 byte_4;
__le32 msg_len; __le32 msg_len;
__be32 immtdata; __le32 immtdata;
__le32 byte_16; __le32 byte_16;
__le32 byte_20; __le32 byte_20;
__le32 byte_24; __le32 byte_24;
...@@ -1016,7 +1016,7 @@ struct hns_roce_v2_rc_send_wqe { ...@@ -1016,7 +1016,7 @@ struct hns_roce_v2_rc_send_wqe {
__le32 msg_len; __le32 msg_len;
union { union {
__le32 inv_key; __le32 inv_key;
__be32 immtdata; __le32 immtdata;
}; };
__le32 byte_16; __le32 byte_16;
__le32 byte_20; __le32 byte_20;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment