From patchwork Fri Jan 22 02:28:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pan Bian X-Patchwork-Id: 12038139 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 50FADC433DB for ; Fri, 22 Jan 2021 02:31:26 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9AB90230FC for ; Fri, 22 Jan 2021 02:31:25 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9AB90230FC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=163.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:MIME-Version:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Owner; bh=eu72g/lVkZOqHeDAeE/6fKCWqJT3Bmtwmche/1Bx/8g=; b=InFKALzAdkXcKc9zFaODADgujG twueRZU/UXZGKQAlxKIsBErch2OIWmAOTK4A7/PT4/MXaxA5alCAEN4NdRgxdljTwWSIV3MiUGuYk vh3+ApA2Xh2UPx9bvYEI/NeMaItoU5+iF1l0FiNv2B1XVOwgNZ2dNPupIoAm/YFqJfBG9YW9FsdUk 5WrQN6ZqWHC6mRE2X1LK+yAU5ad3y+SesSEBTsdvzP7jMx81COKzy1Hkb8dAoM10Bj2Kz6Ym/Soq9 lc9j/cPFeiWOLjnnXEW+g2cC6IrgI2a9WSUUgnn/L0mRcVKoR/mEuX2qJqN6jAj51R0ndjJr+1IRa PJgjAVmQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1l2mCO-0005lS-PT; Fri, 22 Jan 2021 02:29:20 +0000 Received: from m12-13.163.com ([220.181.12.13]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1l2mCJ-0005kx-Vn for linux-arm-kernel@lists.infradead.org; Fri, 22 Jan 2021 02:29:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-Id; bh=yU9QQ/5JDhRPC+j7Pd +GDKElnSWXrbJlKVz+PvGYDtE=; b=QWRujn256LpUocN7ON52rkdo87fAmdGLer 88e5IfgfNvcku66BJTBjpJersOM78WqpOpBZL9XoDVToMlAs4jhFe3kTePIRDlnX Fr1T2UhA7TBcdInpIjh6leIUokHfd4/qVY3TeNbkxBe1Yirr4QQEOl/yLqcQxDpz UI5xRBnaU= Received: from localhost.localdomain (unknown [119.3.119.20]) by smtp9 (Coremail) with SMTP id DcCowAA3ZHRFOApgnYa8bw--.50014S4; Fri, 22 Jan 2021 10:28:27 +0800 (CST) From: Pan Bian To: Zhang Rui , Daniel Lezcano , Amit Kucheria , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Anson Huang Subject: [PATCH] thermal: imx_sc_thermal: drop child node when break loop Date: Thu, 21 Jan 2021 18:28:18 -0800 Message-Id: <20210122022818.39969-1-bianpan2016@163.com> X-Mailer: git-send-email 2.17.1 X-CM-TRANSID: DcCowAA3ZHRFOApgnYa8bw--.50014S4 X-Coremail-Antispam: 1Uf129KBjvJXoW7urWfKw4DJF1kCw4DXw4fZrb_yoW8XFyDpw 4UCrWagrWDWFWUAw10yw15AFZ0vw4DKFW8Wr4rCwnaka98JryfJryrXFyUXFy8JFWrG3WY y3W2qr4UZF4kJrJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07bUGYLUUUUU= X-Originating-IP: [119.3.119.20] X-CM-SenderInfo: held01tdqsiiqw6rljoofrz/1tbiNgwiclWBlvUcNAAAs1 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210121_212916_699150_F94E5B60 X-CRM114-Status: GOOD ( 11.53 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Pan Bian , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Call of_node_put() to decrement the reference count of the child node when jumping out of the loop body of for_each_available_child_of_node(), which is a macro that increments and decrements the reference count of child node. If the loop is broken, the reference of the child node should be dropped manually. Fixes: e20db70dba1c ("thermal: imx_sc: add i.MX system controller thermal support") Signed-off-by: Pan Bian --- drivers/thermal/imx_sc_thermal.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/thermal/imx_sc_thermal.c b/drivers/thermal/imx_sc_thermal.c index b01d28eca7ee..404cab7221e3 100644 --- a/drivers/thermal/imx_sc_thermal.c +++ b/drivers/thermal/imx_sc_thermal.c @@ -93,6 +93,7 @@ static int imx_sc_thermal_probe(struct platform_device *pdev) for_each_available_child_of_node(np, child) { sensor = devm_kzalloc(&pdev->dev, sizeof(*sensor), GFP_KERNEL); if (!sensor) { + of_node_put(child); of_node_put(sensor_np); return -ENOMEM; } @@ -104,6 +105,7 @@ static int imx_sc_thermal_probe(struct platform_device *pdev) dev_err(&pdev->dev, "failed to get valid sensor resource id: %d\n", ret); + of_node_put(child); break; } @@ -113,6 +115,7 @@ static int imx_sc_thermal_probe(struct platform_device *pdev) &imx_sc_thermal_ops); if (IS_ERR(sensor->tzd)) { dev_err(&pdev->dev, "failed to register thermal zone\n"); + of_node_put(child); ret = PTR_ERR(sensor->tzd); break; }