Message ID | 20190307102250.1140038-1-arnd@arndb.de |
---|---|
State | Accepted |
Commit | 9505b98ccddc454008ca7efff90044e3e857c827 |
Headers | show |
Series | cpufreq: pxa2xx: remove incorrect __init annotation | expand |
On 07-03-19, 11:22, 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 <arnd@arndb.de> > --- > 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, Acked-by: Viresh Kumar <viresh.kumar@linaro.org> -- viresh
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 <arnd@arndb.de> Reviewed-by: Nathan Chancellor <natechancellor@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 >
Arnd Bergmann <arnd@arndb.de> writes: > 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 <arnd@arndb.de> Acked-by: Robert Jarzmik <robert.jarzmik@free.fr> Cheers. -- Robert
On Thursday, March 7, 2019 11:22:41 AM CET 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 <arnd@arndb.de> > --- > 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, > Applied, thanks!
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,
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 <arnd@arndb.de> --- drivers/cpufreq/pxa2xx-cpufreq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.20.0