[PATCH] arm/mach: Hold reference returned by of_find_xxx APIs
Liang He
windhl at 126.com
Tue Jun 21 02:19:37 PDT 2022
In highbank_init_irq(), tegra_init_irq() and omap4_cpcap_init(),
we should hold the reference returned by of_find_xxx APIs and
use it to call of_node_put() for refcount balance.
Signed-off-by: Liang He <windhl at 126.com>
---
arch/arm/mach-highbank/highbank.c | 6 +++++-
arch/arm/mach-omap2/pmic-cpcap.c | 5 ++++-
arch/arm/mach-tegra/irq.c | 6 +++++-
3 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/arch/arm/mach-highbank/highbank.c b/arch/arm/mach-highbank/highbank.c
index db607955a7e4..4f50000377b8 100644
--- a/arch/arm/mach-highbank/highbank.c
+++ b/arch/arm/mach-highbank/highbank.c
@@ -50,10 +50,14 @@ static void highbank_l2c310_write_sec(unsigned long val, unsigned reg)
static void __init highbank_init_irq(void)
{
+ struct device_node *np;
+
irqchip_init();
- if (of_find_compatible_node(NULL, NULL, "arm,cortex-a9"))
+ np = of_find_compatible_node(NULL, NULL, "arm,cortex-a9");
+ if (np)
highbank_scu_map_io();
+ of_node_put(np);
}
static void highbank_power_off(void)
diff --git a/arch/arm/mach-omap2/pmic-cpcap.c b/arch/arm/mach-omap2/pmic-cpcap.c
index 668dc84fd31e..a7368d657aa8 100644
--- a/arch/arm/mach-omap2/pmic-cpcap.c
+++ b/arch/arm/mach-omap2/pmic-cpcap.c
@@ -238,8 +238,11 @@ static struct omap_voltdm_pmic omap4_fan_iva = {
int __init omap4_cpcap_init(void)
{
struct voltagedomain *voltdm;
+ struct device_node *np;
- if (!of_find_compatible_node(NULL, NULL, "motorola,cpcap"))
+ np = of_find_compatible_node(NULL, NULL, "motorola,cpcap");
+ of_node_put(np);
+ if (!np)
return -ENODEV;
voltdm = voltdm_lookup("mpu");
diff --git a/arch/arm/mach-tegra/irq.c b/arch/arm/mach-tegra/irq.c
index 4e1ee70b2a3f..2aeac041bcb9 100644
--- a/arch/arm/mach-tegra/irq.c
+++ b/arch/arm/mach-tegra/irq.c
@@ -88,7 +88,11 @@ static const struct of_device_id tegra_ictlr_match[] __initconst = {
void __init tegra_init_irq(void)
{
- if (WARN_ON(!of_find_matching_node(NULL, tegra_ictlr_match)))
+ struct device_node *np;
+
+ np = of_find_matching_node(NULL, tegra_ictlr_match);
+ of_node_put(np);
+ if (WARN_ON(!np))
pr_warn("Outdated DT detected, suspend/resume will NOT work\n");
tegra114_gic_cpu_pm_registration();
--
2.25.1
More information about the linux-arm-kernel
mailing list