From 03846554ac76c7fba225d3178fd992dda45d4bc3 Mon Sep 17 00:00:00 2001 From: Finley Xiao Date: Mon, 13 Jan 2020 18:28:54 +0800 Subject: [PATCH] cpufreq: cpufreq-dt: Make unregister system monitor before free opp table The system monitor may sill use regulator, clock and opp table before unregister. Change-Id: I8d5008808ba2b2290864b8c96121ba4c85fc09ac Signed-off-by: Finley Xiao --- drivers/cpufreq/cpufreq-dt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/cpufreq/cpufreq-dt.c b/drivers/cpufreq/cpufreq-dt.c index c788c1c5be87..1094b3d8865b 100644 --- a/drivers/cpufreq/cpufreq-dt.c +++ b/drivers/cpufreq/cpufreq-dt.c @@ -358,6 +358,9 @@ static int cpufreq_exit(struct cpufreq_policy *policy) #ifdef CONFIG_ARCH_ROCKCHIP rockchip_cpufreq_suspend(policy); + rockchip_system_monitor_unregister(priv->mdev_info); + kfree(priv->mdevp); + priv->mdevp = NULL; #endif dev_pm_opp_free_cpufreq_table(priv->cpu_dev, &policy->freq_table); if (priv->have_static_opps) @@ -366,8 +369,6 @@ static int cpufreq_exit(struct cpufreq_policy *policy) dev_pm_opp_put_regulators(priv->opp_table); #ifdef CONFIG_ARCH_ROCKCHIP rockchip_cpufreq_put_opp_info(priv->cpu_dev); - rockchip_system_monitor_unregister(priv->mdev_info); - kfree(priv->mdevp); #endif clk_put(policy->clk); kfree(priv);