On Thu, Mar 07, 2019 at 11:22:41AM +0100, Arnd Bergmann wrote: > pxa_cpufreq_init_voltages() is marked __init but usually inlined into > the non-__init pxa_cpufreq_init() function. When building with clang, > it can stay as a standalone function in a discarded section, and produce > this warning: > > WARNING: vmlinux.o(.text+0x616a00): Section mismatch in reference from the > function pxa_cpufreq_init() to the function > .init.text:pxa_cpufreq_init_voltages() > The function pxa_cpufreq_init() references > the function __init pxa_cpufreq_init_voltages(). > This is often because pxa_cpufreq_init lacks a __init > annotation or the annotation of pxa_cpufreq_init_voltages is wrong. > > Fixes: 50e77fcd790e ("ARM: pxa: remove __init from cpufreq_driver->init()") > Signed-off-by: Arnd Bergmann <a...@arndb.de>
Reviewed-by: Nathan Chancellor <natechancel...@gmail.com> > --- > drivers/cpufreq/pxa2xx-cpufreq.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/cpufreq/pxa2xx-cpufreq.c > b/drivers/cpufreq/pxa2xx-cpufreq.c > index 46254e583982..74e0e0c20c46 100644 > --- a/drivers/cpufreq/pxa2xx-cpufreq.c > +++ b/drivers/cpufreq/pxa2xx-cpufreq.c > @@ -143,7 +143,7 @@ static int pxa_cpufreq_change_voltage(const struct > pxa_freqs *pxa_freq) > return ret; > } > > -static void __init pxa_cpufreq_init_voltages(void) > +static void pxa_cpufreq_init_voltages(void) > { > vcc_core = regulator_get(NULL, "vcc_core"); > if (IS_ERR(vcc_core)) { > @@ -159,7 +159,7 @@ static int pxa_cpufreq_change_voltage(const struct > pxa_freqs *pxa_freq) > return 0; > } > > -static void __init pxa_cpufreq_init_voltages(void) { } > +static void pxa_cpufreq_init_voltages(void) { } > #endif > > static void find_freq_tables(struct cpufreq_frequency_table **freq_table, > -- > 2.20.0 >