From: Johan Hovold Date: Mon, 26 Jan 2015 11:02:45 +0000 (+0100) Subject: gpio: sysfs: fix memory leak in gpiod_export_link X-Git-Tag: v3.16.35~2876 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e3edeb67ce2f98660d296b1c7c68cb37f0bf22b4;p=thirdparty%2Fkernel%2Fstable.git gpio: sysfs: fix memory leak in gpiod_export_link commit 0f303db08df0df9bd0966443ad6001e63960af16 upstream. Fix memory leak in the gpio sysfs interface due to failure to drop reference to device returned by class_find_device when creating a link. Fixes: a4177ee7f1a8 ("gpiolib: allow exported GPIO nodes to be named using sysfs links") Signed-off-by: Johan Hovold Signed-off-by: Linus Walleij [ luis: backported to 3.16: - file rename: drivers/gpio/gpiolib-sysfs.c -> drivers/gpio/gpiolib.c ] Signed-off-by: Luis Henriques --- diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index b9b955530596f..69fc2fcfc3e98 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -911,6 +911,7 @@ int gpiod_export_link(struct device *dev, const char *name, if (tdev != NULL) { status = sysfs_create_link(&dev->kobj, &tdev->kobj, name); + put_device(tdev); } else { status = -ENODEV; }