Thread (4 messages) 4 messages, 3 authors, 2021-04-27

Re: [PATCH 2/2] thermal: sprd: add missing of_node_put for loop iteration

From: Chunyan Zhang <zhang.lyra@gmail.com>
Date: 2021-04-26 08:08:19
Also in: linux-pm, lkml

On Mon, 26 Apr 2021 at 01:48, Krzysztof Kozlowski
[off-list ref] wrote:
Early exits from for_each_available_child_of_node() should decrement the
node reference counter.  Reported by Coccinelle:

  drivers/thermal/sprd_thermal.c:387:1-23: WARNING:
    Function "for_each_child_of_node" should have of_node_put() before goto around lines 391.

Signed-off-by: Krzysztof Kozlowski <redacted>
Acked-by: Chunyan Zhang <zhang.lyra@gmail.com>

Thanks for fixing this.
quoted hunk ↗ jump to hunk
---
 drivers/thermal/sprd_thermal.c | 4 ++++
 1 file changed, 4 insertions(+)
diff --git a/drivers/thermal/sprd_thermal.c b/drivers/thermal/sprd_thermal.c
index 3682edb2f466..2778971aaf03 100644
--- a/drivers/thermal/sprd_thermal.c
+++ b/drivers/thermal/sprd_thermal.c
@@ -388,6 +388,7 @@ static int sprd_thm_probe(struct platform_device *pdev)
                sen = devm_kzalloc(&pdev->dev, sizeof(*sen), GFP_KERNEL);
                if (!sen) {
                        ret = -ENOMEM;
+                       of_node_put(sen_child);
                        goto disable_clk;
                }
@@ -397,12 +398,14 @@ static int sprd_thm_probe(struct platform_device *pdev)
                ret = of_property_read_u32(sen_child, "reg", &sen->id);
                if (ret) {
                        dev_err(&pdev->dev, "get sensor reg failed");
+                       of_node_put(sen_child);
                        goto disable_clk;
                }

                ret = sprd_thm_sensor_calibration(sen_child, thm, sen);
                if (ret) {
                        dev_err(&pdev->dev, "efuse cal analysis failed");
+                       of_node_put(sen_child);
                        goto disable_clk;
                }
@@ -416,6 +419,7 @@ static int sprd_thm_probe(struct platform_device *pdev)
                        dev_err(&pdev->dev, "register thermal zone failed %d\n",
                                sen->id);
                        ret = PTR_ERR(sen->tzd);
+                       of_node_put(sen_child);
                        goto disable_clk;
                }

--
2.25.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help