On Sun, Oct 14, 2018 at 09:11:16AM +0300, Shamir Rabinovitch wrote: > diff --git a/drivers/infiniband/core/uverbs_std_types_mr.c b/drivers/infiniband/core/uverbs_std_types_mr.c > index cf02e774303e..afdf2ab74883 100644 > +++ b/drivers/infiniband/core/uverbs_std_types_mr.c > @@ -36,7 +36,12 @@ > static int uverbs_free_mr(struct ib_uobject *uobject, > enum rdma_remove_reason why) > { > - return ib_dereg_mr((struct ib_mr *)uobject->object); > + struct ib_udata udata = {0}; The ={} is not needed if we call init: > + ib_uverbs_init_udata_buf_or_null(&udata, NULL, NULL, 0, 0, > + uobject->context); > + > + return ib_dereg_mr_user((struct ib_mr *)uobject->object, &udata); > } > -int ib_dereg_mr(struct ib_mr *mr) > +int ib_dereg_mr_user(struct ib_mr *mr, struct ib_udata *udata) > { > struct ib_pd *pd = mr->pd; > struct ib_dm *dm = mr->dm; > int ret; > > rdma_restrack_del(&mr->res); > - ret = mr->device->dereg_mr(mr); > + ret = mr->device->dereg_mr(mr, NULL); Should the NULL be udata?? Jason