]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
clk: tegra: tegra124-emc: fix device leak on set_rate()
authorJohan Hovold <johan@kernel.org>
Fri, 21 Nov 2025 16:40:03 +0000 (17:40 +0100)
committerStephen Boyd <sboyd@kernel.org>
Fri, 23 Jan 2026 01:40:29 +0000 (17:40 -0800)
Make sure to drop the reference taken when looking up the EMC device and
its driver data on first set_rate().

Note that holding a reference to a device does not prevent its driver
data from going away so there is no point in keeping the reference.

Fixes: 2db04f16b589 ("clk: tegra: Add EMC clock driver")
Fixes: 6d6ef58c2470 ("clk: tegra: tegra124-emc: Fix missing put_device() call in emc_ensure_emc_driver")
Cc: stable@vger.kernel.org # 4.2: 6d6ef58c2470
Cc: Mikko Perttunen <mperttunen@nvidia.com>
Cc: Miaoqian Lin <linmq006@gmail.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/tegra/clk-tegra124-emc.c

index 2a6db0434281594cd5cef35d2ee8cd5f0760bacd..2777e70da8b99f6e0b2cbe077c65a88f250a1335 100644 (file)
@@ -197,8 +197,8 @@ static struct tegra_emc *emc_ensure_emc_driver(struct tegra_clk_emc *tegra)
        tegra->emc_node = NULL;
 
        tegra->emc = platform_get_drvdata(pdev);
+       put_device(&pdev->dev);
        if (!tegra->emc) {
-               put_device(&pdev->dev);
                pr_err("%s: cannot find EMC driver\n", __func__);
                return NULL;
        }