]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
soc: qcom: smp2p: Add of_node_put() before goto
authorWan Jiabing <wanjiabing@vivo.com>
Thu, 14 Oct 2021 06:23:49 +0000 (02:23 -0400)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Sun, 24 Oct 2021 17:14:52 +0000 (12:14 -0500)
Fix following coccicheck warning:
./drivers/soc/qcom/smp2p.c:501:1-33: WARNING: Function
for_each_available_child_of_node should have of_node_put() before goto

Early exits from for_each_available_child_of_node should decrement the
node reference counter.

Signed-off-by: Wan Jiabing <wanjiabing@vivo.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20211014062350.8942-1-wanjiabing@vivo.com
drivers/soc/qcom/smp2p.c

index 11b95113e38e8f6ecaf616b84c293db4a9c03bc3..4a157240f419ee2ab8b1d5efaeff9e6b1eda9710 100644 (file)
@@ -573,6 +573,7 @@ static int qcom_smp2p_probe(struct platform_device *pdev)
                entry = devm_kzalloc(&pdev->dev, sizeof(*entry), GFP_KERNEL);
                if (!entry) {
                        ret = -ENOMEM;
+                       of_node_put(node);
                        goto unwind_interfaces;
                }
 
@@ -580,19 +581,25 @@ static int qcom_smp2p_probe(struct platform_device *pdev)
                spin_lock_init(&entry->lock);
 
                ret = of_property_read_string(node, "qcom,entry-name", &entry->name);
-               if (ret < 0)
+               if (ret < 0) {
+                       of_node_put(node);
                        goto unwind_interfaces;
+               }
 
                if (of_property_read_bool(node, "interrupt-controller")) {
                        ret = qcom_smp2p_inbound_entry(smp2p, entry, node);
-                       if (ret < 0)
+                       if (ret < 0) {
+                               of_node_put(node);
                                goto unwind_interfaces;
+                       }
 
                        list_add(&entry->node, &smp2p->inbound);
                } else  {
                        ret = qcom_smp2p_outbound_entry(smp2p, entry, node);
-                       if (ret < 0)
+                       if (ret < 0) {
+                               of_node_put(node);
                                goto unwind_interfaces;
+                       }
 
                        list_add(&entry->node, &smp2p->outbound);
                }