Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp163199pxb; Mon, 13 Sep 2021 15:59:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyAeIPg82/pZcc04vPVHhgSVReNSMXCPPTh60wqthKL/OvlCH5s6tkNbpj11XLiJ8/LR+Rk X-Received: by 2002:aa7:ca0a:: with SMTP id y10mr12470977eds.329.1631573985114; Mon, 13 Sep 2021 15:59:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631573985; cv=none; d=google.com; s=arc-20160816; b=utAm7H8v0HI6Fl8HPY7KISzCPOu7CF3SZkvy9Hw7CZgrS0LhFwY6CnZ5V8F9HVO8X1 ewITkcLmRN8JL3e+1XMUQgTFohSQJT3Scin3MgCYKf6v/sQQUQc/HdNjs1Krb61zfa/k pheZs9rsEuSFK3VQYNvS+WdozYBKXx2sJlDhuyGya5lQb9dhuL/QJ5gBK8joYJBeJp8p 2tvyE6+CzWGCRjY9bizAD0m7QOreiyXMX6c+zKaRhZlkhw5T39EgEGeKUMbySPaZJI+8 EbI+VA74zGE1VaHXdpYvRIPqroSuDdAiVaXjuDI7mJR1OvzySdccnxSBiKBogy+yC++M 2L2w== 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=KYn9PXtU0OknERDW05kX3r8o5Ekr5fpCMjWNcwfFqEA=; b=lKnWotkdODjr6JHUf4U/7oI1WoroW+Jra4Xj+RfyXMpmy+ssHHYRmZI2miD2Jb8cOE bTxX/gH8FTWTFGyyMf7FohRSG5phUff8oftVRGxZj9wmXeg3w6GIQBJoc778T1a3CrCR QgDGCvk5h9KwuUIPWVlEzVB0UpwQvJgsmJVXiInc69tAjhKIJ+GplseWA3XWe0SYjpwj Cx83xLqu9LwntbgrUjcx9wYw4tGEztGl3JMCy+69jwvwPeQo4ZmxXmpRlxhJlkvrEcWq H1MpZvPYs2kZJmxlesKTl2JNJInZkYRZ35sMk4jQxxMGnjyGzmcgwiQ3tH0BPNrsX6AR tMUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=2Ek28GUh; 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 f29si3005004ejj.403.2021.09.13.15.59.20; Mon, 13 Sep 2021 15:59:45 -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=2Ek28GUh; 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 S242526AbhIMOfw (ORCPT + 99 others); Mon, 13 Sep 2021 10:35:52 -0400 Received: from mail.kernel.org ([198.145.29.99]:48696 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1347233AbhIMOae (ORCPT ); Mon, 13 Sep 2021 10:30:34 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 98CCC61BA1; Mon, 13 Sep 2021 13:51:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1631541080; bh=2ITj5GJ9ow0IEEL/OtqutD4LH+DrjnmA/o6l3zoPD6k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=2Ek28GUhiRcDusNc+RgI4vrYCmqadaS2/klph9RDkbcF2Bs7mCQiETAX2uIfiqZSf bEwGNJyrMTdMzzVndvVgh9bqN1Q1LvDG2sKBDPKujYTItY2XqjLFj87KHs+Dw8Y4/r /ibV0VVO7QhGYk1LpMGBb3kNild28GrH675dYniI= 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.14 154/334] leds: lgm-sso: Put fwnode in any case during ->probe() Date: Mon, 13 Sep 2021 15:13:28 +0200 Message-Id: <20210913131118.557999148@linuxfoundation.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210913131113.390368911@linuxfoundation.org> References: <20210913131113.390368911@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 7eb2f44f16be..62ce83cea553 100644 --- a/drivers/leds/blink/leds-lgm-sso.c +++ b/drivers/leds/blink/leds-lgm-sso.c @@ -631,8 +631,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; @@ -702,11 +704,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); @@ -731,6 +733,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