2021-08-25 05:19:55

by Valdis Klētnieks

[permalink] [raw]
Subject: [PATCH] cpufreq: qcom-cpufreq-hw: Fix 'make allmodconfig' build, part 2

Commit 86afc1df661a adds a reference to a symbol that doesn't have an
EXPORT_PER_CPU_SYMBOL, which fails if qcom-cpufreq-hw is built as a module.

ERROR: modpost: "cpu_scale" [drivers/cpufreq/qcom-cpufreq-hw.ko] undefined!

Thanks to Seonjae Park for pointing me in the right direction.

Fixes: 86afc1df661a ("cpufreq: qcom-cpufreq-hw: Add dcvs interrupt support")
Suggested-by: SeongJae Park <[email protected]>
Signed-off-by: Valdis Kletnieks <[email protected]>

diff --git a/drivers/base/arch_topology.c b/drivers/base/arch_topology.c
index 921312a8d957..7e7de763bd88 100644
--- a/drivers/base/arch_topology.c
+++ b/drivers/base/arch_topology.c
@@ -149,6 +149,7 @@ void topology_set_freq_scale(const struct cpumask *cpus, unsigned long cur_freq,
}

DEFINE_PER_CPU(unsigned long, cpu_scale) = SCHED_CAPACITY_SCALE;
+EXPORT_PER_CPU_SYMBOL_GPL(cpu_scale);

void topology_set_cpu_scale(unsigned int cpu, unsigned long capacity)
{


2021-08-25 17:43:07

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH] cpufreq: qcom-cpufreq-hw: Fix 'make allmodconfig' build, part 2

On 8/24/21 10:17 PM, Valdis Klētnieks wrote:
> Commit 86afc1df661a adds a reference to a symbol that doesn't have an
> EXPORT_PER_CPU_SYMBOL, which fails if qcom-cpufreq-hw is built as a module.
>
> ERROR: modpost: "cpu_scale" [drivers/cpufreq/qcom-cpufreq-hw.ko] undefined!
>
> Thanks to Seonjae Park for pointing me in the right direction.
>
> Fixes: 86afc1df661a ("cpufreq: qcom-cpufreq-hw: Add dcvs interrupt support")
> Suggested-by: SeongJae Park <[email protected]>
> Signed-off-by: Valdis Kletnieks <[email protected]>
>
> diff --git a/drivers/base/arch_topology.c b/drivers/base/arch_topology.c
> index 921312a8d957..7e7de763bd88 100644
> --- a/drivers/base/arch_topology.c
> +++ b/drivers/base/arch_topology.c
> @@ -149,6 +149,7 @@ void topology_set_freq_scale(const struct cpumask *cpus, unsigned long cur_freq,
> }
>
> DEFINE_PER_CPU(unsigned long, cpu_scale) = SCHED_CAPACITY_SCALE;
> +EXPORT_PER_CPU_SYMBOL_GPL(cpu_scale);
>
> void topology_set_cpu_scale(unsigned int cpu, unsigned long capacity)
> {
>

Hi Valdis,

I could not repro these build errors in today's linux-next.
It looks like someone has already merged an alternative patch
(and its follow-up):
https://lore.kernel.org/lkml/a1053bd0e63ec0d985691b8a37bf7f6d5a1156aa.1629702403.git.viresh.kumar@linaro.org/

thanks.
--
~Randy