Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp151322pxb; Mon, 13 Sep 2021 15:36:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyGZn3Sog/7VTwew9ID1qLSeRrvGBz8JJieC5LgG1Ub4TTkfUzYhlfnn2TRphsDitRHRrag X-Received: by 2002:a05:6e02:1144:: with SMTP id o4mr8269637ill.264.1631572596402; Mon, 13 Sep 2021 15:36:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631572596; cv=none; d=google.com; s=arc-20160816; b=gYWUkkKftxn5O/YlYrPQt3Ia0t9gKpqbYCtQRln0i/QE1UfNshnGTZFZRPOGx3TKGK OKMqKMj+/t4xdkoKvGMnm/8ZV5UoBgRhh0r2rb7hiipt5VI1n7w317phjuG1phRbTvR2 or0wm61WSEwsYzHtsV5MvzOD/PJR6QsdXq7bDA2sZZJEz0GxDu/a/peHUGIVlTCdULyi LEHg9XSc7FGJiQch0hjiDPAHxRT/ZJ7O1UqOHSC2C0JfxUuxOwc59+m3vZd1YcIhc5t7 xxklj8NoSQK9MjFmPmutnXcu1SpWb0zEhrljyiVs2QOuhdErz2JvQnUZ9ZkdC7VrWeqe gZJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=dawhVKmqRy4mHC8Q9bHgqliiDF9jaVLd9GJyzQ37vPQ=; b=f6kiFZgAE6dgV8D4nkP0zVmcw1oR/RBKYhO31CB/H+u0W3fIUbAMouU1Lv+j3KiiCR xdxJqTQ+0NvhrDgN5gqcxeoWK1ES1HNBn7l+vew+Kbu4fD03Y3m4fmFNs4yZoUEg4O79 aj+14TMFnOGBDgI2mOexH/bRuG9onYCtacOy4sdSYflGKdO5enl7YGcRBAbXnwy9ofIP u7jvNWg8L7acoPpxTHNlNNV5DJfoOOLSQThxDP4PDCnd6t2Z9/FN9rB/cIBoRxHuBV83 gcBjP7VVUYYojGQBPx/q+c35D4FKWHC729eal3lLNxRwhH003FHXt2bCdLKQzah50grJ xcQQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=tyTtAd1V; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id u15si9091685jak.129.2021.09.13.15.36.22; Mon, 13 Sep 2021 15:36:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=tyTtAd1V; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243207AbhIMOF6 (ORCPT + 99 others); Mon, 13 Sep 2021 10:05:58 -0400 Received: from mail.kernel.org ([198.145.29.99]:54740 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244606AbhIMOCq (ORCPT ); Mon, 13 Sep 2021 10:02:46 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 3C11C61A4F; Mon, 13 Sep 2021 13:38:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1631540308; bh=YJ3YEJmb0vOXhvgxRo9igpiNc1A8M6GRnM1uZpGEviE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tyTtAd1V8qKFPihITF3/UxOWCW6jrM8TsewiNjT4WGERdNlClhm4VahW0HPJMmtyw tXFyKUVM0w7/5tv08RQ6BJPFBi/5e7lEyvwOWdXZRYp2z8L2GRNjupPS2kSI8vQv1I XnAALPUuF3vF9jOsFTCEL8pxClQ/vKYD3N97/fLg= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Amireddy Mallikarjuna reddy , Andy Shevchenko , Pavel Machek , Sasha Levin Subject: [PATCH 5.13 140/300] leds: lgm-sso: Put fwnode in any case during ->probe() Date: Mon, 13 Sep 2021 15:13:21 +0200 Message-Id: <20210913131114.130950470@linuxfoundation.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210913131109.253835823@linuxfoundation.org> References: <20210913131109.253835823@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Andy Shevchenko [ Upstream commit 9999908ca1abee7aa518a4f6a3739517c137acbf ] fwnode_get_next_child_node() bumps a reference counting of a returned variable. We have to balance it whenever we return to the caller. All the same in fwnode_for_each_child_node() case. Fixes: c3987cd2bca3 ("leds: lgm: Add LED controller driver for LGM SoC") Cc: Amireddy Mallikarjuna reddy Signed-off-by: Andy Shevchenko Signed-off-by: Pavel Machek Signed-off-by: Sasha Levin --- drivers/leds/blink/leds-lgm-sso.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/leds/blink/leds-lgm-sso.c b/drivers/leds/blink/leds-lgm-sso.c index 7d5f0bf2817a..2dd285052c6a 100644 --- a/drivers/leds/blink/leds-lgm-sso.c +++ b/drivers/leds/blink/leds-lgm-sso.c @@ -630,8 +630,10 @@ __sso_led_dt_parse(struct sso_led_priv *priv, struct fwnode_handle *fw_ssoled) fwnode_for_each_child_node(fw_ssoled, fwnode_child) { led = devm_kzalloc(dev, sizeof(*led), GFP_KERNEL); - if (!led) - return -ENOMEM; + if (!led) { + ret = -ENOMEM; + goto __dt_err; + } INIT_LIST_HEAD(&led->list); led->priv = priv; @@ -701,11 +703,11 @@ __sso_led_dt_parse(struct sso_led_priv *priv, struct fwnode_handle *fw_ssoled) if (sso_create_led(priv, led, fwnode_child)) goto __dt_err; } - fwnode_handle_put(fw_ssoled); return 0; + __dt_err: - fwnode_handle_put(fw_ssoled); + fwnode_handle_put(fwnode_child); /* unregister leds */ list_for_each(p, &priv->led_list) { led = list_entry(p, struct sso_led, list); @@ -730,6 +732,7 @@ static int sso_led_dt_parse(struct sso_led_priv *priv) fw_ssoled = fwnode_get_named_child_node(fwnode, "ssoled"); if (fw_ssoled) { ret = __sso_led_dt_parse(priv, fw_ssoled); + fwnode_handle_put(fw_ssoled); if (ret) return ret; } -- 2.30.2