]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
hwmon: (gsc-hwmon) use device_for_each_child_node_scoped()
authorJavier Carrasco <javier.carrasco.cruz@gmail.com>
Thu, 4 Apr 2024 11:13:28 +0000 (13:13 +0200)
committerGuenter Roeck <linux@roeck-us.net>
Sat, 8 Jun 2024 23:07:33 +0000 (16:07 -0700)
Switch to the _scoped() version introduced in commit 365130fd47af
("device property: Introduce device_for_each_child_node_scoped()")
to remove the need for manual calling of fwnode_handle_put() in the
paths where the code exits the loop early.

Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Link: https://lore.kernel.org/r/20240404-hwmon_device_for_each_child_node_scoped-v1-2-53997abde43c@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/gsc-hwmon.c

index 1501ceb551e796f75082a1a786220d9ac089e66f..0f2147699c917f452b4db0bb82ae9de705309eb8 100644 (file)
@@ -249,7 +249,6 @@ gsc_hwmon_get_devtree_pdata(struct device *dev)
 {
        struct gsc_hwmon_platform_data *pdata;
        struct gsc_hwmon_channel *ch;
-       struct fwnode_handle *child;
        struct device_node *fan;
        int nchannels;
 
@@ -276,25 +275,21 @@ gsc_hwmon_get_devtree_pdata(struct device *dev)
 
        ch = pdata->channels;
        /* allocate structures for channels and count instances of each type */
-       device_for_each_child_node(dev, child) {
+       device_for_each_child_node_scoped(dev, child) {
                if (fwnode_property_read_string(child, "label", &ch->name)) {
                        dev_err(dev, "channel without label\n");
-                       fwnode_handle_put(child);
                        return ERR_PTR(-EINVAL);
                }
                if (fwnode_property_read_u32(child, "reg", &ch->reg)) {
                        dev_err(dev, "channel without reg\n");
-                       fwnode_handle_put(child);
                        return ERR_PTR(-EINVAL);
                }
                if (fwnode_property_read_u32(child, "gw,mode", &ch->mode)) {
                        dev_err(dev, "channel without mode\n");
-                       fwnode_handle_put(child);
                        return ERR_PTR(-EINVAL);
                }
                if (ch->mode > mode_max) {
                        dev_err(dev, "invalid channel mode\n");
-                       fwnode_handle_put(child);
                        return ERR_PTR(-EINVAL);
                }