Commit 7bed7ebc authored by Jason Gunthorpe's avatar Jason Gunthorpe

RDMA/qedr: Fix endian problems around imm_data

The double swap matches what user space rdma-core does to imm_data.

wc->imm_data is not used in the kernel so this change has no practical
impact.
Acked-by: default avatarMichal Kalderon <michal.kalderon@cavium.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
parent ccb8a29e
...@@ -3039,7 +3039,7 @@ static int __qedr_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr, ...@@ -3039,7 +3039,7 @@ static int __qedr_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr,
swqe->wqe_size = 2; swqe->wqe_size = 2;
swqe2 = qed_chain_produce(&qp->sq.pbl); swqe2 = qed_chain_produce(&qp->sq.pbl);
swqe->inv_key_or_imm_data = cpu_to_le32(wr->ex.imm_data); swqe->inv_key_or_imm_data = cpu_to_le32(be32_to_cpu(wr->ex.imm_data));
length = qedr_prepare_sq_send_data(dev, qp, swqe, swqe2, length = qedr_prepare_sq_send_data(dev, qp, swqe, swqe2,
wr, bad_wr); wr, bad_wr);
swqe->length = cpu_to_le32(length); swqe->length = cpu_to_le32(length);
...@@ -3590,7 +3590,7 @@ static inline int qedr_set_ok_cqe_resp_wc(struct rdma_cqe_responder *resp, ...@@ -3590,7 +3590,7 @@ static inline int qedr_set_ok_cqe_resp_wc(struct rdma_cqe_responder *resp,
wc->byte_len = le32_to_cpu(resp->length); wc->byte_len = le32_to_cpu(resp->length);
if (resp->flags & QEDR_RESP_IMM) { if (resp->flags & QEDR_RESP_IMM) {
wc->ex.imm_data = le32_to_cpu(resp->imm_data_or_inv_r_Key); wc->ex.imm_data = cpu_to_be32(le32_to_cpu(resp->imm_data_or_inv_r_Key));
wc->wc_flags |= IB_WC_WITH_IMM; wc->wc_flags |= IB_WC_WITH_IMM;
if (resp->flags & QEDR_RESP_RDMA) if (resp->flags & QEDR_RESP_RDMA)
......
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