mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 14:04:27 -04:00
ARM: tegra: Fix OF node reference leaks in IRQ init
tegra114_gic_cpu_pm_registration() and tegra_init_irq() use of_find_matching_node() for temporary IRQ init lookups, but the helper returns a referenced node even when the result is used only as a boolean or as an of_iomap() input. Use scoped device_node cleanup for both lookups so the references are dropped when the functions return. Fixes:7e8b15dbc3("ARM: tegra114: Reprogram GIC CPU interface to bypass IRQ on CPU PM entry") Fixes:e9479e0e83("ARM: tegra: skip gic_arch_extn setup if DT has a LIC node") Signed-off-by: Yuho Choi <dbgh9129@gmail.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
committed by
Thierry Reding
parent
dc59e4fea9
commit
7acac0caba
@@ -66,9 +66,9 @@ static const struct of_device_id tegra114_dt_gic_match[] __initconst = {
|
||||
|
||||
static void __init tegra114_gic_cpu_pm_registration(void)
|
||||
{
|
||||
struct device_node *dn;
|
||||
struct device_node *dn __free(device_node) =
|
||||
of_find_matching_node(NULL, tegra114_dt_gic_match);
|
||||
|
||||
dn = of_find_matching_node(NULL, tegra114_dt_gic_match);
|
||||
if (!dn)
|
||||
return;
|
||||
|
||||
@@ -88,7 +88,10 @@ 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 *dn __free(device_node) =
|
||||
of_find_matching_node(NULL, tegra_ictlr_match);
|
||||
|
||||
if (WARN_ON(!dn))
|
||||
pr_warn("Outdated DT detected, suspend/resume will NOT work\n");
|
||||
|
||||
tegra114_gic_cpu_pm_registration();
|
||||
|
||||
Reference in New Issue
Block a user