Skip to contentSkip to conversation

soc/tegra: add of_node_put()

PATCH In review Yangtao Li 2 participants 4 messages Nov 21, 2018 Tegra architecture support

lore
Share & tools
lore

Yangtao Li

author
#0 lore raw

PATCH 1/1 soc/tegra: add of_node_put()

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.

---
 drivers/soc/tegra/common.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
drivers/soc/tegra/common.c +4 -1
index cd8f41351add..2e30604c9658 100644
@@ -23,10 +23,13 @@ static const struct of_device_id tegra_machine_match[] = {
 bool soc_is_tegra(void)
 {
 	struct device_node *root;
+	bool rc;
 
 	root = of_find_node_by_path("/");
 	if (!root)
 		return false;
 
-	return of_match_node(tegra_machine_match, root) != NULL;
+	rc = of_match_node(tegra_machine_match, root) != NULL;
+	of_node_put(root);
+	return rc;
 }
Signature · 1 line
2.17.0
maintainer
#1 lore raw
Quoted 18 lines · Yangtao Li

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.

---
 drivers/soc/tegra/common.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
drivers/soc/tegra/common.c +1 -0
index cd8f41351add..2e30604c9658 100644
@@ -23,10 +23,13 @@ static const struct of_device_id tegra_machine_match[] = {
 bool soc_is_tegra(void)
 {
 	struct device_node *root;
+	bool rc;

drivers/soc/tegra/common.c static const struct of_device_id tegra_machine_match[] = { · line 35

Quoted 10 lines
drivers/soc/tegra/common.c +3 -1
 
 	root = of_find_node_by_path("/");
 	if (!root)
 		return false;
 
-	return of_match_node(tegra_machine_match, root) != NULL;
+	rc = of_match_node(tegra_machine_match, root) != NULL;
+	of_node_put(root);
+	return rc;
 }

Thanks for the fix, however, I think it would be even simpler just to call of_machine_is_compatible() here instead.

Cheers
Jon

Signature · 1 line
nvpublic
maintainer Acked-by
#2 lore raw
Quoted 5 lines · Jon Hunter
Quoted 3 lines · Yangtao Li

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.

The bl_idle_init() looks like a typo here.

Quoted 20 lines
Quoted 20 lines
---
 drivers/soc/tegra/common.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
drivers/soc/tegra/common.c +1 -0
index cd8f41351add..2e30604c9658 100644
@@ -23,10 +23,13 @@ static const struct of_device_id tegra_machine_match[] = {
 bool soc_is_tegra(void)
 {
 	struct device_node *root;
+	bool rc;
 
 	root = of_find_node_by_path("/");
 	if (!root)
 		return false;
 
Quoted 8 lines

drivers/soc/tegra/common.c static const struct of_device_id tegra_machine_match[] = { · line 35

Quoted 5 lines
drivers/soc/tegra/common.c +3 -1
-	return of_match_node(tegra_machine_match, root) != NULL;
+	rc = of_match_node(tegra_machine_match, root) != NULL;
+	of_node_put(root);
+	return rc;
 }

Thanks for the fix, however, I think it would be even simpler just to call of_machine_is_compatible() here instead.

Right so I was wrong above about using of_machine_is_compatible, so with the typo above fixed ...

Cheers
Jon

Signature · 1 line
nvpublic
author
#3 lore raw
Quoted 10 lines · Jon Hunter
Quoted 5 lines · Jon Hunter
Quoted 3 lines · Yangtao Li

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.

The bl_idle_init() looks like a typo here.

Hi Jon:

Thanks. :-)

Yous,
Yangtao

Quoted 40 lines
Quoted 21 lines
Quoted 21 lines
---
 drivers/soc/tegra/common.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
drivers/soc/tegra/common.c +1 -0
index cd8f41351add..2e30604c9658 100644
@@ -23,10 +23,13 @@ static const struct of_device_id tegra_machine_match[] = {
 bool soc_is_tegra(void)
 {
     struct device_node *root;
+    bool rc;
 
     root = of_find_node_by_path("/");
     if (!root)
             return false;
 
Quoted 8 lines

drivers/soc/tegra/common.c static const struct of_device_id tegra_machine_match[] = { · line 35

Quoted 5 lines
drivers/soc/tegra/common.c +3 -1
-    return of_match_node(tegra_machine_match, root) != NULL;
+    rc = of_match_node(tegra_machine_match, root) != NULL;
+    of_node_put(root);
+    return rc;
 }

Thanks for the fix, however, I think it would be even simpler just to call of_machine_is_compatible() here instead.

Right so I was wrong above about using of_machine_is_compatible, so with the typo above fixed ...

Cheers
Jon

--
nvpublic