drivers/pinctrl/pinctrl-equilibrium.c | 1 + 1 file changed, 1 insertion(+)
When calling of_parse_phandle_with_fixed_args(), the caller is
responsible to call of_node_put() to release the reference of device
node.
In pinbank_init(), the reference of the node obtained from the
"gpio-ranges" property is never released, resulting in a reference
count leak.
Add the missing of_node_put() call to fix the leak.
Fixes: 1948d5c51dba ("pinctrl: Add pinmux & GPIO controller driver for a new SoC")
Signed-off-by: Felix Gu <ustc.gu@gmail.com>
---
drivers/pinctrl/pinctrl-equilibrium.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/pinctrl/pinctrl-equilibrium.c b/drivers/pinctrl/pinctrl-equilibrium.c
index 2d04829b29c9..48b55c5bf8d4 100644
--- a/drivers/pinctrl/pinctrl-equilibrium.c
+++ b/drivers/pinctrl/pinctrl-equilibrium.c
@@ -846,6 +846,7 @@ static int pinbank_init(struct device_node *np,
bank->pin_base = spec.args[1];
bank->nr_pins = spec.args[2];
+ of_node_put(spec.np);
bank->aval_pinmap = readl(bank->membase + REG_AVAIL);
bank->id = id;
---
base-commit: ca3a02fda4da8e2c1cb6baee5d72352e9e2cfaea
change-id: 20260127-pinctrl-equilibrium-7cabc99b86ff
Best regards,
--
Felix Gu <ustc.gu@gmail.com>
On Mon, Jan 26, 2026 at 6:30 PM Felix Gu <ustc.gu@gmail.com> wrote:
> When calling of_parse_phandle_with_fixed_args(), the caller is
> responsible to call of_node_put() to release the reference of device
> node.
>
> In pinbank_init(), the reference of the node obtained from the
> "gpio-ranges" property is never released, resulting in a reference
> count leak.
>
> Add the missing of_node_put() call to fix the leak.
>
> Fixes: 1948d5c51dba ("pinctrl: Add pinmux & GPIO controller driver for a new SoC")
> Signed-off-by: Felix Gu <ustc.gu@gmail.com>
Patch applied!
Yours,
Linus Walleij
On Tue, Jan 27, 2026 at 01:30:07AM +0800, Felix Gu wrote: > When calling of_parse_phandle_with_fixed_args(), the caller is > responsible to call of_node_put() to release the reference of device > node. > > In pinbank_init(), the reference of the node obtained from the > "gpio-ranges" property is never released, resulting in a reference > count leak. > > Add the missing of_node_put() call to fix the leak. Acked-by: Andy Shevchenko <andriy.shevchenko@intel.com> -- With Best Regards, Andy Shevchenko
© 2016 - 2026 Red Hat, Inc.