From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.linuxfoundation.org ([140.211.169.12]:43259 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751257AbbJMW6l (ORCPT ); Tue, 13 Oct 2015 18:58:41 -0400 Subject: Patch "leds/led-class: Add missing put_device()" has been added to the 4.2-stable tree To: ricardo.ribalda@gmail.com, delicious.quinoa@gmail.com, gregkh@linuxfoundation.org, j.anaszewski@samsung.com Cc: , From: Date: Tue, 13 Oct 2015 15:58:39 -0700 Message-ID: <144477711922071@kroah.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org List-ID: This is a note to let you know that I've just added the patch titled leds/led-class: Add missing put_device() to the 4.2-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: leds-led-class-add-missing-put_device.patch and it can be found in the queue-4.2 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let know about it. >>From e5b5a61fcb3743f1dacf9e20d28f48423cecf0c1 Mon Sep 17 00:00:00 2001 From: Ricardo Ribalda Delgado Date: Fri, 31 Jul 2015 13:36:21 +0200 Subject: leds/led-class: Add missing put_device() From: Ricardo Ribalda Delgado commit e5b5a61fcb3743f1dacf9e20d28f48423cecf0c1 upstream. Devices found by class_find_device must be freed with put_device(). Otherwise the reference count will not work properly. Fixes: a96aa64cb572 ("leds/led-class: Handle LEDs with the same name") Reported-by: Alan Tull Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Jacek Anaszewski Signed-off-by: Greg Kroah-Hartman --- drivers/leds/led-class.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) --- a/drivers/leds/led-class.c +++ b/drivers/leds/led-class.c @@ -228,12 +228,15 @@ static int led_classdev_next_name(const { unsigned int i = 0; int ret = 0; + struct device *dev; strlcpy(name, init_name, len); - while (class_find_device(leds_class, NULL, name, match_name) && - (ret < len)) + while ((ret < len) && + (dev = class_find_device(leds_class, NULL, name, match_name))) { + put_device(dev); ret = snprintf(name, len, "%s_%u", init_name, ++i); + } if (ret >= len) return -ENOMEM; Patches currently in stable-queue which might be from ricardo.ribalda@gmail.com are queue-4.2/leds-led-class-add-missing-put_device.patch