[PATCH v2] ARM: OMAP2+: Hold reference returned from of_find_xxx API

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



In omap4_twl_init(), we should hold the reference returned from
of_find_compatible_node() which has increased the refcount and
then call of_node_put() with it when done.

Note that we should initialize 'np' with NULL, otherwise there
will be a bug to call of_node_put() with uninitialized 'np'
when cpu_is_omap44xx() is false.

Fixes: ccd369455a23 ("ARM: OMAP2+: Remove bogus warnings for machines without twl PMIC")
Co-developed-by: Mengda Chen <chenmengda2009@xxxxxxx>
Signed-off-by: Mengda Chen <chenmengda2009@xxxxxxx>
Signed-off-by: Liang He <windhl@xxxxxxx>
---

 v2: (1) initialize 'np' with NULL, advised by Russell King 
     (2) we use proper Co-developed-by tag based on kernel doc

 arch/arm/mach-omap2/omap_twl.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-omap2/omap_twl.c b/arch/arm/mach-omap2/omap_twl.c
index d4dab041324d..d56b33187244 100644
--- a/arch/arm/mach-omap2/omap_twl.c
+++ b/arch/arm/mach-omap2/omap_twl.c
@@ -213,10 +213,13 @@ static struct omap_voltdm_pmic omap4_core_pmic = {
 int __init omap4_twl_init(void)
 {
 	struct voltagedomain *voltdm;
+	struct device_node *np = NULL;
 
 	if (!cpu_is_omap44xx() ||
-	    of_find_compatible_node(NULL, NULL, "motorola,cpcap"))
+	    (np = of_find_compatible_node(NULL, NULL, "motorola,cpcap"))) {
+		of_node_put(np);
 		return -ENODEV;
+	}
 
 	voltdm = voltdm_lookup("mpu");
 	omap_voltage_register_pmic(voltdm, &omap4_mpu_pmic);
-- 
2.25.1




[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux