mirror of
https://github.com/torvalds/linux.git
synced 2026-08-01 20:22:08 +02:00
hwmon: (gsc-hwmon) use device_for_each_child_node_scoped()
Switch to the _scoped() version introduced in commit 365130fd47
("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>
This commit is contained in:
parent
234c07400e
commit
1ee1237941
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user