Message ID | 20230102082039.3941790-1-linmq006@gmail.com |
---|---|
State | New |
Headers | show |
Series | gpio: sifive: Fix refcount leak in sifive_gpio_probe | expand |
On Mon, Jan 2, 2023 at 9:20 AM Miaoqian Lin <linmq006@gmail.com> wrote: > > of_irq_find_parent() returns a node pointer with refcount incremented, > We should use of_node_put() on it when not needed anymore. > Add missing of_node_put() to avoid refcount leak. > > Fixes: 96868dce644d ("gpio/sifive: Add GPIO driver for SiFive SoCs") > Signed-off-by: Miaoqian Lin <linmq006@gmail.com> > --- > drivers/gpio/gpio-sifive.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpio/gpio-sifive.c b/drivers/gpio/gpio-sifive.c > index 238f3210970c..bc5660f61c57 100644 > --- a/drivers/gpio/gpio-sifive.c > +++ b/drivers/gpio/gpio-sifive.c > @@ -215,6 +215,7 @@ static int sifive_gpio_probe(struct platform_device *pdev) > return -ENODEV; > } > parent = irq_find_host(irq_parent); > + of_node_put(irq_parent); > if (!parent) { > dev_err(dev, "no IRQ parent domain\n"); > return -ENODEV; > -- > 2.25.1 > Good catch, applied! Bart
diff --git a/drivers/gpio/gpio-sifive.c b/drivers/gpio/gpio-sifive.c index 238f3210970c..bc5660f61c57 100644 --- a/drivers/gpio/gpio-sifive.c +++ b/drivers/gpio/gpio-sifive.c @@ -215,6 +215,7 @@ static int sifive_gpio_probe(struct platform_device *pdev) return -ENODEV; } parent = irq_find_host(irq_parent); + of_node_put(irq_parent); if (!parent) { dev_err(dev, "no IRQ parent domain\n"); return -ENODEV;
of_irq_find_parent() returns a node pointer with refcount incremented, We should use of_node_put() on it when not needed anymore. Add missing of_node_put() to avoid refcount leak. Fixes: 96868dce644d ("gpio/sifive: Add GPIO driver for SiFive SoCs") Signed-off-by: Miaoqian Lin <linmq006@gmail.com> --- drivers/gpio/gpio-sifive.c | 1 + 1 file changed, 1 insertion(+)