Browse Source

IB/core: Pass imm_data from ib_uverbs_send_wr to ib_send_wr correctly

Currently, we don't copy the immediate data from the userspace struct
to the kernel one when UD messages are being sent.

This patch makes sure that the immediate data is set correctly.

Signed-off-by: Latchesar Ionkov <lucho@ionkov.net>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Latchesar Ionkov 11 years ago
parent
commit
6b7d103c1b
1 changed files with 3 additions and 0 deletions
  1. 3 0
      drivers/infiniband/core/uverbs_cmd.c

+ 3 - 0
drivers/infiniband/core/uverbs_cmd.c

@@ -2128,6 +2128,9 @@ ssize_t ib_uverbs_post_send(struct ib_uverbs_file *file,
 			}
 			next->wr.ud.remote_qpn  = user_wr->wr.ud.remote_qpn;
 			next->wr.ud.remote_qkey = user_wr->wr.ud.remote_qkey;
+			if (next->opcode == IB_WR_SEND_WITH_IMM)
+				next->ex.imm_data =
+					(__be32 __force) user_wr->ex.imm_data;
 		} else {
 			switch (next->opcode) {
 			case IB_WR_RDMA_WRITE_WITH_IMM: