Message ID | 20240816-cleanup-h-of-node-put-var-v1-16-1d0292802470@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | leds: Use scoped device node handling to simplify error paths | expand |
Reviewed-by: Marek BehĂșn <kabel@kernel.org> On Fri, Aug 16, 2024 at 05:31:48PM +0200, Krzysztof Kozlowski wrote: > Use scoped for_each_available_child_of_node_scoped() when iterating over > device nodes to make code a bit simpler. > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > --- > drivers/leds/leds-turris-omnia.c | 8 +++----- > 1 file changed, 3 insertions(+), 5 deletions(-) > > diff --git a/drivers/leds/leds-turris-omnia.c b/drivers/leds/leds-turris-omnia.c > index 39f740be058f..1ef942b5cefa 100644 > --- a/drivers/leds/leds-turris-omnia.c > +++ b/drivers/leds/leds-turris-omnia.c > @@ -452,7 +452,7 @@ static int omnia_mcu_get_features(const struct i2c_client *client) > static int omnia_leds_probe(struct i2c_client *client) > { > struct device *dev = &client->dev; > - struct device_node *np = dev_of_node(dev), *child; > + struct device_node *np = dev_of_node(dev); > struct omnia_leds *leds; > struct omnia_led *led; > int ret, count; > @@ -497,12 +497,10 @@ static int omnia_leds_probe(struct i2c_client *client) > } > > led = &leds->leds[0]; > - for_each_available_child_of_node(np, child) { > + for_each_available_child_of_node_scoped(np, child) { > ret = omnia_led_register(client, led, child); > - if (ret < 0) { > - of_node_put(child); > + if (ret < 0) > return ret; > - } > > led += ret; > } > > -- > 2.43.0 >
diff --git a/drivers/leds/leds-turris-omnia.c b/drivers/leds/leds-turris-omnia.c index 39f740be058f..1ef942b5cefa 100644 --- a/drivers/leds/leds-turris-omnia.c +++ b/drivers/leds/leds-turris-omnia.c @@ -452,7 +452,7 @@ static int omnia_mcu_get_features(const struct i2c_client *client) static int omnia_leds_probe(struct i2c_client *client) { struct device *dev = &client->dev; - struct device_node *np = dev_of_node(dev), *child; + struct device_node *np = dev_of_node(dev); struct omnia_leds *leds; struct omnia_led *led; int ret, count; @@ -497,12 +497,10 @@ static int omnia_leds_probe(struct i2c_client *client) } led = &leds->leds[0]; - for_each_available_child_of_node(np, child) { + for_each_available_child_of_node_scoped(np, child) { ret = omnia_led_register(client, led, child); - if (ret < 0) { - of_node_put(child); + if (ret < 0) return ret; - } led += ret; }
Use scoped for_each_available_child_of_node_scoped() when iterating over device nodes to make code a bit simpler. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> --- drivers/leds/leds-turris-omnia.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)