From e0f4f032b5bef6f8dab40252114b2469481078bf Mon Sep 17 00:00:00 2001 From: Mike Tipton Date: Fri, 15 Oct 2021 11:50:37 -0700 Subject: [PATCH] cpufreq: qcom-hw: Fix panic when offlining core under lmh throttle The qcom_lmh_dcvs_notify() function requires the CPU OPP tables, so cancel the lmh work before removing them. Change-Id: I3d42362baff1632da6d8a9cfc5ba9b724da240d9 Signed-off-by: Mike Tipton --- drivers/cpufreq/qcom-cpufreq-hw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/cpufreq/qcom-cpufreq-hw.c b/drivers/cpufreq/qcom-cpufreq-hw.c index 36c79580fba2..79d83fbf3508 100644 --- a/drivers/cpufreq/qcom-cpufreq-hw.c +++ b/drivers/cpufreq/qcom-cpufreq-hw.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 /* - * Copyright (c) 2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2018, 2021, The Linux Foundation. All rights reserved. */ #include @@ -597,9 +597,9 @@ static int qcom_cpufreq_hw_cpu_exit(struct cpufreq_policy *policy) struct resource *res = data->res; void __iomem *base = data->base; + qcom_cpufreq_hw_lmh_exit(data); dev_pm_opp_remove_all_dynamic(cpu_dev); dev_pm_opp_of_cpumask_remove_table(policy->related_cpus); - qcom_cpufreq_hw_lmh_exit(data); kfree(policy->freq_table); kfree(data); iounmap(base);