Commit 86afc1df661a adds a reference to a symbol that doesn't have an
EXPORT_SYMBOL, which fails if qcom-cpufreq-hw is built as a module.
ERROR: modpost: "topology_set_thermal_pressure" [drivers/cpufreq/qcom-cpufreq-hw.ko] undefined!
Add the missing EXPORT_SYMBOL.
Fixes: 86afc1df661a ("cpufreq: qcom-cpufreq-hw: Add dcvs interrupt support")
Signed-off-by: Valdis Kletnieks <[email protected]>
---
diff --git a/drivers/base/arch_topology.c b/drivers/base/arch_topology.c
index 921312a8d957..fbc39ca67124 100644
--- a/drivers/base/arch_topology.c
+++ b/drivers/base/arch_topology.c
@@ -165,6 +165,7 @@ void topology_set_thermal_pressure(const struct cpumask *cpus,
for_each_cpu(cpu, cpus)
WRITE_ONCE(per_cpu(thermal_pressure, cpu), th_pressure);
}
+EXPORT_SYMBOL(topology_set_thermal_pressure);
static ssize_t cpu_capacity_show(struct device *dev,
struct device_attribute *attr,
On 8/22/21 1:10 PM, Valdis Klētnieks wrote:
> Commit 86afc1df661a adds a reference to a symbol that doesn't have an
> EXPORT_SYMBOL, which fails if qcom-cpufreq-hw is built as a module.
>
> ERROR: modpost: "topology_set_thermal_pressure" [drivers/cpufreq/qcom-cpufreq-hw.ko] undefined!
>
> Add the missing EXPORT_SYMBOL.
>
> Fixes: 86afc1df661a ("cpufreq: qcom-cpufreq-hw: Add dcvs interrupt support")
> Signed-off-by: Valdis Kletnieks <[email protected]>
> ---
> diff --git a/drivers/base/arch_topology.c b/drivers/base/arch_topology.c
> index 921312a8d957..fbc39ca67124 100644
> --- a/drivers/base/arch_topology.c
> +++ b/drivers/base/arch_topology.c
> @@ -165,6 +165,7 @@ void topology_set_thermal_pressure(const struct cpumask *cpus,
> for_each_cpu(cpu, cpus)
> WRITE_ONCE(per_cpu(thermal_pressure, cpu), th_pressure);
> }
> +EXPORT_SYMBOL(topology_set_thermal_pressure);
>
> static ssize_t cpu_capacity_show(struct device *dev,
> struct device_attribute *attr,
>
Hi Valdis,
This fixes one build error for me but I am still seeing another one:
ERROR: modpost: "cpu_scale" [drivers/cpufreq/qcom-cpufreq-hw.ko] undefined!
thanks.
--
~Randy
On Sun, 22 Aug 2021 14:08:08 -0700, Randy Dunlap said:
> This fixes one build error for me but I am still seeing another one:
>
> ERROR: modpost: "cpu_scale" [drivers/cpufreq/qcom-cpufreq-hw.ko] undefined!
That's a different patch, am working on fixing that one now..
Hi,
On Sun, 22 Aug 2021 17:14:04 -0400 "Valdis Klētnieks" <[email protected]> wrote:
>
> [-- Attachment #1: Type: text/plain, Size: 270 bytes --]
>
> On Sun, 22 Aug 2021 14:08:08 -0700, Randy Dunlap said:
>
> > This fixes one build error for me but I am still seeing another one:
> >
> > ERROR: modpost: "cpu_scale" [drivers/cpufreq/qcom-cpufreq-hw.ko] undefined!
>
> That's a different patch, am working on fixing that one now..
I didn't take a deep look here, so I unsure if this is an appropriate fix, but
I was able to work-around this issue for my use case with below change.
```
--- 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)
{
```
Thanks,
SJ
On Tue, 24 Aug 2021 09:14:30 -0000, SeongJae Park said:
> > > ERROR: modpost: "cpu_scale" [drivers/cpufreq/qcom-cpufreq-hw.ko] undefined!
> >
> > That's a different patch, am working on fixing that one now..
>
> I didn't take a deep look here, so I unsure if this is an appropriate fix, but
> I was able to work-around this issue for my use case with below change.
>
> DEFINE_PER_CPU(unsigned long, cpu_scale) = SCHED_CAPACITY_SCALE;
> +EXPORT_PER_CPU_SYMBOL_GPL(cpu_scale);
Aha. That's the part I wasn't finding. Would you like to submit your patch,
or shall I send it in with a "Suggested-by" for you?
From: SeongJae Park <[email protected]>
On Tue, 24 Aug 2021 22:16:04 -0400 "Valdis Klētnieks" <[email protected]> wrote:
> On Tue, 24 Aug 2021 09:14:30 -0000, SeongJae Park said:
>
> > > > ERROR: modpost: "cpu_scale" [drivers/cpufreq/qcom-cpufreq-hw.ko] undefined!
> > >
> > > That's a different patch, am working on fixing that one now..
> >
> > I didn't take a deep look here, so I unsure if this is an appropriate fix, but
> > I was able to work-around this issue for my use case with below change.
> >
>
> > DEFINE_PER_CPU(unsigned long, cpu_scale) = SCHED_CAPACITY_SCALE;
> > +EXPORT_PER_CPU_SYMBOL_GPL(cpu_scale);
>
> Aha. That's the part I wasn't finding. Would you like to submit your patch,
> or shall I send it in with a "Suggested-by" for you?
I'd prefer 'Suggested-by', as I didn't take a deep look here.
Suggested-by: SeongJae Park <[email protected]>
Thanks,
SJ