[PATCH] ARM: S3C64XX: Fix section mismatch from cpufreq init

Uwe Kleine-König u.kleine-koenig at pengutronix.de
Wed Mar 16 04:38:11 EDT 2011


On Thu, Mar 10, 2011 at 02:58:13PM +0000, Mark Brown wrote:
> The cpufreq init function is referenced from the driver structure and
> we don't appear to have annotations which allow us to mark that it'll
> never be called after system init, causing the linker consistency
> infrastructure to complain. Just remove the __init annotation to avoid
> noise from the build.
> 
> Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
> ---
>  arch/arm/mach-s3c64xx/cpufreq.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/arm/mach-s3c64xx/cpufreq.c b/arch/arm/mach-s3c64xx/cpufreq.c
> index 74c0e83..4375b97 100644
> --- a/arch/arm/mach-s3c64xx/cpufreq.c
> +++ b/arch/arm/mach-s3c64xx/cpufreq.c
> @@ -181,7 +181,7 @@ static void __init s3c64xx_cpufreq_config_regulator(void)
>  }
>  #endif
>  
> -static int __init s3c64xx_cpufreq_driver_init(struct cpufreq_policy *policy)
> +static int s3c64xx_cpufreq_driver_init(struct cpufreq_policy *policy)
>  {
>  	int ret;
>  	struct cpufreq_frequency_table *freq;
Actually this is warning is a false positive.  There is a section
mismatch, but it is never a problem because the .init callback is only
called by cpufreq_register_driver. To get rid of the warning the right
fix is to remove the .init callback from struct cpufreq_driver and
change the prototype of cpufreq_register_driver to

	int cpufreq_register_driver(struct cpufreq_driver *, int (*)(struct cpufreq_policy *))

(that is pass the init callback to cpufreq_register_driver).

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |



More information about the linux-arm-kernel mailing list