[v2] cpuidle: big.LITTLE: add of_node_put()
diff mbox series

Message ID 20181120154617.20903-1-tiny.windzz@gmail.com
State New
Headers show
Series
  • [v2] cpuidle: big.LITTLE: add of_node_put()
Related show

Commit Message

Frank Lee Nov. 20, 2018, 3:46 p.m. UTC
The of_node_put() is missing.So we call the of_node_put() to release
the refcount.

Signed-off-by: Yangtao Li <tiny.windzz@gmail.com>
---
Changes in v2
-update changelog
-do that right after its last use 
 to also cover error handling.
---
 drivers/cpuidle/cpuidle-big_little.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Rafael J. Wysocki Nov. 20, 2018, 4:06 p.m. UTC | #1
On Tue, Nov 20, 2018 at 4:46 PM Yangtao Li <tiny.windzz@gmail.com> wrote:
>
> The of_node_put() is missing.So we call the of_node_put() to release
> the refcount.

I would say "of_find_node_by_path() acquires a reference to the node
returned by it and that reference needs to be dropped by its caller.
bl_idle_init() doesn't do that, so fix it."

Thanks,
Rafael
Frank Lee Nov. 20, 2018, 4:08 p.m. UTC | #2
On Wed, Nov 21, 2018 at 12:06 AM Rafael J. Wysocki <rafael@kernel.org> wrote:
>
> On Tue, Nov 20, 2018 at 4:46 PM Yangtao Li <tiny.windzz@gmail.com> wrote:
> >
> > The of_node_put() is missing.So we call the of_node_put() to release
> > the refcount.
>
> I would say "of_find_node_by_path() acquires a reference to the node
> returned by it and that reference needs to be dropped by its caller.
> bl_idle_init() doesn't do that, so fix it."
>
> Thanks,
> Rafael
Hi Rafael:

You are right, I will change it right away.

Yours,
    Yangtao

Patch
diff mbox series

diff --git a/drivers/cpuidle/cpuidle-big_little.c b/drivers/cpuidle/cpuidle-big_little.c
index db2ede565f1a..650f063ef809 100644
--- a/drivers/cpuidle/cpuidle-big_little.c
+++ b/drivers/cpuidle/cpuidle-big_little.c
@@ -174,8 +174,12 @@  static int __init bl_idle_init(void)
 	/*
 	 * Initialize the driver just for a compliant set of machines
 	 */
-	if (!of_match_node(compatible_machine_match, root))
+	if (!of_match_node(compatible_machine_match, root)){
+		of_node_put(root);
 		return -ENODEV;
+	}
+
+	of_node_put(root);
 
 	if (!mcpm_is_available())
 		return -EUNATCH;