On Mon, May 25, 2020 at 02:41:41PM -0300, Jason Gunthorpe wrote: > 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.. I wanted to simplify the series and keep its bisectable at the same time. Should I squash them? > > > 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 I know, but didn't know if to follow existing pattern or not. > > Jason