| From c14e74bed45367915ead3411fcad9da7fb828e17 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 27 Jan 2026 01:30:07 +0800 |
| Subject: pinctrl: equilibrium: Fix device node reference leak in |
| pinbank_init() |
| |
| From: Felix Gu <ustc.gu@gmail.com> |
| |
| [ Upstream commit c0b4a4feeb43305a754893d8d9c6b2b5a52d45ac ] |
| |
| 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> |
| Acked-by: Andy Shevchenko <andriy.shevchenko@intel.com> |
| Signed-off-by: Linus Walleij <linusw@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| 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 3b6dcaa80e000..55fc9aa61f55a 100644 |
| --- a/drivers/pinctrl/pinctrl-equilibrium.c |
| +++ b/drivers/pinctrl/pinctrl-equilibrium.c |
| @@ -835,6 +835,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; |
| -- |
| 2.51.0 |
| |