On Fri, May 12, 2017 at 06:24:26AM -0400, Devesh Sharma wrote: > ibvwc->wc_flags |= IBV_WC_WITH_IMM; > + /* Completion reports the raw-data in LE format, While > + * user expects it in BE format. Thus, swapping on outgoing > + * data is needed. On a BE platform le32toh will do the swap > + * while on LE platform htobe32 will do the job. > + */ > ibvwc->imm_data = htobe32(le32toh(rcqe->imm_key)); Just to be clear, getting this right is an interop requirement. Code like the above means the hardware takes byte 0 of the ImmDt header and writes to byte 3 of rcqe->imm_key. verbs requires that byte 0 of the ImmDt header is written to byte 0 of wc->imm_data Jason -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html