]> git.dujemihanovic.xyz Git - linux.git/commitdiff
mfd: qcom-spmi-pmic: Use for_each_child_of_node_scoped()
authorJinjie Ruan <ruanjinjie@huawei.com>
Mon, 26 Aug 2024 09:27:34 +0000 (17:27 +0800)
committerLee Jones <lee@kernel.org>
Mon, 23 Sep 2024 15:20:54 +0000 (16:20 +0100)
Avoids the need for manual cleanup of_node_put() in early exits
from the loop.

Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Link: https://lore.kernel.org/r/20240826092734.2899562-3-ruanjinjie@huawei.com
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/mfd/qcom-spmi-pmic.c

index eab5bf6cff105a05f35163fbb67d1b7a4d3abeb7..b4b178caf754d8acadddb2c29a0049313f60adde 100644 (file)
@@ -84,7 +84,6 @@ static const struct of_device_id pmic_spmi_id_table[] = {
 static struct spmi_device *qcom_pmic_get_base_usid(struct spmi_device *sdev, struct qcom_spmi_dev *ctx)
 {
        struct device_node *spmi_bus;
-       struct device_node *child;
        int function_parent_usid, ret;
        u32 pmic_addr;
 
@@ -108,10 +107,9 @@ static struct spmi_device *qcom_pmic_get_base_usid(struct spmi_device *sdev, str
         */
        spmi_bus = of_get_parent(sdev->dev.of_node);
        sdev = ERR_PTR(-ENODATA);
-       for_each_child_of_node(spmi_bus, child) {
+       for_each_child_of_node_scoped(spmi_bus, child) {
                ret = of_property_read_u32_index(child, "reg", 0, &pmic_addr);
                if (ret) {
-                       of_node_put(child);
                        sdev = ERR_PTR(ret);
                        break;
                }
@@ -125,7 +123,6 @@ static struct spmi_device *qcom_pmic_get_base_usid(struct spmi_device *sdev, str
                                 */
                                sdev = ERR_PTR(-EPROBE_DEFER);
                        }
-                       of_node_put(child);
                        break;
                }
        }