Fri, Sep 27, 2024 at 01:21:02AM +0200, Javier Carrasco kirjoitti: > Switch to device_for_each_child_node_scoped() to simplify the code by > removing the need for calls to fwnode_handle_put() in the error paths. > > This also prevents possible memory leaks if new error paths are added > without the required call to fwnode_handle_put(). > > After switching to the scoped variant, there is no longer need for a > jump to 'err_node_out', as an immediate return is possible. ... > rv = fwnode_property_read_u32(child, "reg", ®); > - if (rv || reg >= MAX77650_LED_NUM_LEDS) { > - rv = -EINVAL; > - goto err_node_put; > - } > + if (rv || reg >= MAX77650_LED_NUM_LEDS) > + return -EINVAL; Again (yes, I know that is original issue, but with your series applied it may be nicely resolved), shadowing error code. Should be if (rv) return rv; if (reg >= MAX77650_LED_NUM_LEDS) return -EINVAL; -- With Best Regards, Andy Shevchenko