On Tue, Aug 28, 2018 at 03:05:07PM +0300, Leon Romanovsky wrote: > From: Parav Pandit <parav@xxxxxxxxxxxx> > > (a) If ib_uverbs_create_uapi() fails, dev_num should be freed. > (b) Destroy uapi if fails to create device. > > Fixes: 7d96c9b17636 ("IB/uverbs: Have the core code create the uverbs_root_spec") > Signed-off-by: Parav Pandit <parav@xxxxxxxxxxxx> > Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxxxx> > --- > drivers/infiniband/core/uverbs_main.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) This looks like a -rc patch to me, since it is a regression.. > diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/core/uverbs_main.c > index 823beca448e1..57495a93017b 100644 > --- a/drivers/infiniband/core/uverbs_main.c > +++ b/drivers/infiniband/core/uverbs_main.c > @@ -1050,7 +1050,7 @@ static void ib_uverbs_add_one(struct ib_device *device) > uverbs_dev->num_comp_vectors = device->num_comp_vectors; > > if (ib_uverbs_create_uapi(device, uverbs_dev)) > - goto err; > + goto err_uapi; > > cdev_init(&uverbs_dev->cdev, NULL); > uverbs_dev->cdev.owner = THIS_MODULE; > @@ -1077,11 +1077,11 @@ static void ib_uverbs_add_one(struct ib_device *device) > > err_class: > device_destroy(uverbs_class, uverbs_dev->cdev.dev); > - > err_cdev: > + uverbs_destroy_api(uverbs_dev->uapi); > cdev_del(&uverbs_dev->cdev); > +err_uapi: > clear_bit(devnum, dev_map); > - > err: > if (atomic_dec_and_test(&uverbs_dev->refcount)) > ib_uverbs_comp_dev(uverbs_dev); > -- > 2.14.4 >