Message ID | 20220607030058.53695-1-linmq006@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] drivers: soc: atmel: Fix refcount leak in atmel_soc_device_init | expand |
On 07.06.2022 06:00, Miaoqian Lin wrote: > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > > of_find_node_by_path() returns a node pointer with refcount incremented, > we should use of_node_put() on it when not need anymore. > Add missing of_node_put() to avoid refcount leak. > > Fixes: 960ddf70cc11 ("drivers: soc: atmel: Avoid calling at91_soc_init on non AT91 SoCs") > Signed-off-by: Miaoqian Lin <linmq006@gmail.com> Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com> > --- > changes in v2: > - create new variable match to refactor the patch. > > v1 Link: https://lore.kernel.org/r/20220605084035.27127-1-linmq006@gmail.com > --- > drivers/soc/atmel/soc.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/soc/atmel/soc.c b/drivers/soc/atmel/soc.c > index b2d365ae0282..7152a38c657a 100644 > --- a/drivers/soc/atmel/soc.c > +++ b/drivers/soc/atmel/soc.c > @@ -368,8 +368,11 @@ static const struct of_device_id at91_soc_allowed_list[] __initconst = { > static int __init atmel_soc_device_init(void) > { > struct device_node *np = of_find_node_by_path("/"); > + const struct of_device_id *match; > > - if (!of_match_node(at91_soc_allowed_list, np)) > + match = of_match_node(at91_soc_allowed_list, np); > + of_node_put(np); > + if (!match) > return 0; > > at91_soc_init(socs); > -- > 2.25.1 >
diff --git a/drivers/soc/atmel/soc.c b/drivers/soc/atmel/soc.c index b2d365ae0282..7152a38c657a 100644 --- a/drivers/soc/atmel/soc.c +++ b/drivers/soc/atmel/soc.c @@ -368,8 +368,11 @@ static const struct of_device_id at91_soc_allowed_list[] __initconst = { static int __init atmel_soc_device_init(void) { struct device_node *np = of_find_node_by_path("/"); + const struct of_device_id *match; - if (!of_match_node(at91_soc_allowed_list, np)) + match = of_match_node(at91_soc_allowed_list, np); + of_node_put(np); + if (!match) return 0; at91_soc_init(socs);
of_find_node_by_path() returns a node pointer with refcount incremented, we should use of_node_put() on it when not need anymore. Add missing of_node_put() to avoid refcount leak. Fixes: 960ddf70cc11 ("drivers: soc: atmel: Avoid calling at91_soc_init on non AT91 SoCs") Signed-off-by: Miaoqian Lin <linmq006@gmail.com> --- changes in v2: - create new variable match to refactor the patch. v1 Link: https://lore.kernel.org/r/20220605084035.27127-1-linmq006@gmail.com --- drivers/soc/atmel/soc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)