> @@ -1367,6 +1367,7 @@ static int pistachio_gpio_register(struct pistachio_pinctrl *pctl) > if (!of_find_property(child, "gpio-controller", NULL)) { > dev_err(pctl->dev, > "No gpio-controller property for bank %u\n", i); > + of_node_put(child); > ret = -ENODEV; > goto err; > } > @@ -1374,6 +1375,7 @@ static int pistachio_gpio_register(struct pistachio_pinctrl *pctl) > irq = irq_of_parse_and_map(child, 0); > if (irq < 0) { > dev_err(pctl->dev, "No IRQ for bank %u: %d\n", i, irq); > + of_node_put(child); > ret = irq; > goto err; > } Would you like to move such duplicate statements (and other function calls) to additional jump targets for the desired exception handling? Regards, Markus