]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
soc/tegra: pmc: Fix child-node lookup
authorJohan Hovold <johan@kernel.org>
Wed, 15 Nov 2017 09:44:58 +0000 (10:44 +0100)
committerJuerg Haefliger <juergh@canonical.com>
Wed, 24 Jul 2019 01:57:45 +0000 (19:57 -0600)
BugLink: https://bugs.launchpad.net/bugs/1836802
commit 1dc6bd5e39a29453bdcc17348dd2a89f1aa4004e upstream.

Fix child-node lookup during probe, which ended up searching the whole
device tree depth-first starting at the parent rather than just matching
on its children.

To make things worse, the parent pmc node could end up being prematurely
freed as of_find_node_by_name() drops a reference to its first argument.

Fixes: 3568df3d31d6 ("soc: tegra: Add thermal reset (thermtrip) support to PMC")
Cc: stable <stable@vger.kernel.org> # 4.0
Cc: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
drivers/soc/tegra/pmc.c

index 185f7a8027bc60f46f0a3379a44ce8b9a8d3078e..2f2c9894e9cc7c7d937f9ae10175635f35dd7259 100644 (file)
@@ -1327,7 +1327,7 @@ static void tegra_pmc_init_tsense_reset(struct tegra_pmc *pmc)
        if (!pmc->soc->has_tsense_reset)
                return;
 
-       np = of_find_node_by_name(pmc->dev->of_node, "i2c-thermtrip");
+       np = of_get_child_by_name(pmc->dev->of_node, "i2c-thermtrip");
        if (!np) {
                dev_warn(dev, "i2c-thermtrip node not found, %s.\n", disabled);
                return;