Skip to content

Commit fa58e46

Browse files
prabhakarladgeertu
authored andcommitted
clk: renesas: cpg-mssr: Check return value of pm_genpd_init()
Make sure we check the return value of pm_genpd_init() which might fail. Also add a devres action to remove the power-domain in-case the probe callback fails further down in the code flow. Signed-off-by: Lad Prabhakar <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Geert Uytterhoeven <[email protected]>
1 parent 3374874 commit fa58e46

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

drivers/clk/renesas/renesas-cpg-mssr.c

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -552,6 +552,11 @@ void cpg_mssr_detach_dev(struct generic_pm_domain *unused, struct device *dev)
552552
pm_clk_destroy(dev);
553553
}
554554

555+
static void cpg_mssr_genpd_remove(void *data)
556+
{
557+
pm_genpd_remove(data);
558+
}
559+
555560
static int __init cpg_mssr_add_clk_domain(struct device *dev,
556561
const unsigned int *core_pm_clks,
557562
unsigned int num_core_pm_clks)
@@ -560,6 +565,7 @@ static int __init cpg_mssr_add_clk_domain(struct device *dev,
560565
struct generic_pm_domain *genpd;
561566
struct cpg_mssr_clk_domain *pd;
562567
size_t pm_size = num_core_pm_clks * sizeof(core_pm_clks[0]);
568+
int ret;
563569

564570
pd = devm_kzalloc(dev, sizeof(*pd) + pm_size, GFP_KERNEL);
565571
if (!pd)
@@ -574,7 +580,14 @@ static int __init cpg_mssr_add_clk_domain(struct device *dev,
574580
GENPD_FLAG_ACTIVE_WAKEUP;
575581
genpd->attach_dev = cpg_mssr_attach_dev;
576582
genpd->detach_dev = cpg_mssr_detach_dev;
577-
pm_genpd_init(genpd, &pm_domain_always_on_gov, false);
583+
ret = pm_genpd_init(genpd, &pm_domain_always_on_gov, false);
584+
if (ret)
585+
return ret;
586+
587+
ret = devm_add_action_or_reset(dev, cpg_mssr_genpd_remove, genpd);
588+
if (ret)
589+
return ret;
590+
578591
cpg_mssr_clk_domain = pd;
579592

580593
of_genpd_add_provider_simple(np, genpd);

0 commit comments

Comments
 (0)