greybus: vibrator: fix memory leak in error path

Fix memory leak in connection_init error path.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
This commit is contained in:
Johan Hovold 2015-03-17 10:55:51 +01:00 committed by Greg Kroah-Hartman
parent 6a80ed4d2c
commit deeb57f5bd
1 changed files with 4 additions and 2 deletions

View File

@ -127,7 +127,7 @@ static int gb_vibrator_connection_init(struct gb_connection *connection)
"vibrator%d", vib->minor);
if (IS_ERR(dev)) {
retval = -EINVAL;
goto error;
goto err_idr_remove;
}
vib->dev = dev;
@ -140,12 +140,14 @@ static int gb_vibrator_connection_init(struct gb_connection *connection)
retval = sysfs_create_group(&dev->kobj, vibrator_groups[0]);
if (retval) {
device_unregister(dev);
goto error;
goto err_idr_remove;
}
#endif
return 0;
err_idr_remove:
idr_remove(&minors, vib->minor);
error:
kfree(vib);
return retval;