Hi! > @@ -734,10 +736,15 @@ static int sso_led_dt_parse(struct sso_led_priv *priv) > if (fw_ssoled) { > ret = __sso_led_dt_parse(priv, fw_ssoled); > if (ret) > - return ret; > + goto err_child_out; > } > > + fwnode_handle_put(fw_ssoled); > return 0; > + > +err_child_out: > + fwnode_handle_put(fw_ssoled); > + return ret; > } Just delete the return and you get the same effect, no? No need to have two exits here. BR, Pavel -- http://www.livejournal.com/~pavelmachek