On Mon, Apr 13, 2020 at 05:15:34PM +0300, Leon Romanovsky wrote: > - if (copy_from_user(&cmd, inbuf, sizeof(cmd))) > + in_size = min_t(size_t, in_len, sizeof(cmd)); > + if (copy_from_user(&cmd, inbuf, in_size)) > return -EFAULT; > > if (!cmd.conn_param.valid) > @@ -1086,8 +1089,13 @@ static ssize_t ucma_connect(struct ucma_file *file, const char __user *inbuf, > return PTR_ERR(ctx); > > ucma_copy_conn_param(ctx->cm_id, &conn_param, &cmd.conn_param); > + if (offsetofend(typeof(cmd), ece) <= in_size) { > + ece.vendor_id = cmd.ece.vendor_id; > + ece.attr_mod = cmd.ece.attr_mod; > + } The uapi changes in the prior patch should be placed in the patches that actually implement them, eg one here.. > diff --git a/include/rdma/rdma_cm.h b/include/rdma/rdma_cm.h > index 71f48cfdc24c..86a849214c84 100644 > --- a/include/rdma/rdma_cm.h > +++ b/include/rdma/rdma_cm.h > @@ -264,6 +264,17 @@ int rdma_init_qp_attr(struct rdma_cm_id *id, struct ib_qp_attr *qp_attr, > */ > int rdma_connect(struct rdma_cm_id *id, struct rdma_conn_param *conn_param); > > +/** > + * rdma_connect_ece - Initiate an active connection request with ECE data. > + * @id: Connection identifier to connect. > + * @conn_param: Connection information used for connected QPs. > + * @ece: ECE parameters > + * > + * See rdma_connect() explanation. > + */ > +int rdma_connect_ece(struct rdma_cm_id *id, struct rdma_conn_param *conn_param, > + struct rdma_ucm_ece *ece); kdoc's go in the C files Jason