On Mon, Oct 28, 2019 at 03:09:26PM +0000, Hefty, Sean wrote: > > IBTA declares QPN as 24bits, mask input to ensure that kernel > > doesn't get higher bits. > > > > Fixes: 75216638572f ("RDMA/cma: Export rdma cm interface to userspace") > > Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxxxx> > > --- > > * Not fully tested yet, passed sanity tests for now. > > --- > > drivers/infiniband/core/ucma.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/infiniband/core/ucma.c b/drivers/infiniband/core/ucma.c > > index 0274e9b704be..57e68491a2fd 100644 > > --- a/drivers/infiniband/core/ucma.c > > +++ b/drivers/infiniband/core/ucma.c > > @@ -1045,7 +1045,7 @@ static void ucma_copy_conn_param(struct rdma_cm_id *id, > > dst->retry_count = src->retry_count; > > dst->rnr_retry_count = src->rnr_retry_count; > > dst->srq = src->srq; > > - dst->qp_num = src->qp_num; > > + dst->qp_num = src->qp_num & 0xFFFFFF; > > Why not isolate IBTA restrictions in the ib_cm? AFAIK, there are many places in IB/core code which assume that type of restriction, so it is safer and cleaner to sanitize input as early as possible. Thanks