Fri, Sep 27, 2024 at 01:21:04AM +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', as an immediate return is possible. ... > if (ret || reg >= chipdef->n_leds) { > dev_err(dev, "Invalid 'reg' property for node %pfw\n", > child); > - ret = -EINVAL; > - goto err; > + return -EINVAL; > } I'm not sure how interpret this message, but the problem here is the shadowing of the original error code. Hence I would split this: if (ret) return ret; // possibly return dev_err_probe() with another message if (reg >= chipdef->n_leds) return dev_err_probe(dev, -EINVAL, "Invalid 'reg' property for node %pfw\n", child); ... > if (ret) { > dev_err(dev, "Failed to register LED for node %pfw\n", > child); > - goto err; > + return ret; return dev_err_probe(...); > } -- With Best Regards, Andy Shevchenko