|
@@ -2372,6 +2372,12 @@ ssize_t ib_uverbs_post_send(struct ib_uverbs_file *file,
|
|
|
next->send_flags = user_wr->send_flags;
|
|
|
|
|
|
if (is_ud) {
|
|
|
+ if (next->opcode != IB_WR_SEND &&
|
|
|
+ next->opcode != IB_WR_SEND_WITH_IMM) {
|
|
|
+ ret = -EINVAL;
|
|
|
+ goto out_put;
|
|
|
+ }
|
|
|
+
|
|
|
next->wr.ud.ah = idr_read_ah(user_wr->wr.ud.ah,
|
|
|
file->ucontext);
|
|
|
if (!next->wr.ud.ah) {
|
|
@@ -2411,9 +2417,11 @@ ssize_t ib_uverbs_post_send(struct ib_uverbs_file *file,
|
|
|
user_wr->wr.atomic.compare_add;
|
|
|
next->wr.atomic.swap = user_wr->wr.atomic.swap;
|
|
|
next->wr.atomic.rkey = user_wr->wr.atomic.rkey;
|
|
|
+ case IB_WR_SEND:
|
|
|
break;
|
|
|
default:
|
|
|
- break;
|
|
|
+ ret = -EINVAL;
|
|
|
+ goto out_put;
|
|
|
}
|
|
|
}
|
|
|
|