Around Thu 05 Dec 2013 10:59:57 +0100 or thereabout, Matthias Brugger wrote: > The function at32_cpufreq_driver_init was marked as __init but will be > called from inside the cpufreq framework. This lead to the following a > section mismatch during compilation: > > WARNING: drivers/built-in.o(.data+0x2448): Section mismatch in reference > from the variable at32_driver to the function > .init.text:at32_cpufreq_driver_init() > The variable at32_driver references > the function __init at32_cpufreq_driver_init() > If the reference is valid then annotate the > variable with __init* or __refdata (see linux/init.h) or name the > variable: > *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console You're right, it is added in struct cpufreq_driver, and AFAICT the cpufreq core might call init every now and then. Added to my for-linus branch. > Signed-off-by: Matthias Brugger <matthias.bgg@xxxxxxxxx> Acked-by: Hans-Christian Egtvedt <egtvedt@xxxxxxxxxxxx> > --- > drivers/cpufreq/at32ap-cpufreq.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/cpufreq/at32ap-cpufreq.c b/drivers/cpufreq/at32ap-cpufreq.c > index e0c38d9..372c426 100644 > --- a/drivers/cpufreq/at32ap-cpufreq.c > +++ b/drivers/cpufreq/at32ap-cpufreq.c > @@ -83,7 +83,7 @@ static int at32_set_target(struct cpufreq_policy *policy, > return 0; > } > > -static int __init at32_cpufreq_driver_init(struct cpufreq_policy *policy) > +static int at32_cpufreq_driver_init(struct cpufreq_policy *policy) > { > if (policy->cpu != 0) > return -EINVAL; -- mvh Hans-Christian Egtvedt -- To unsubscribe from this list: send the line "unsubscribe cpufreq" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html