Re: [RFC/PATCH] OMAP: Fix section mismatch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

[added cpufreq@xxxxxxxxxxxxxxx and Dave to Cc:]

On Fri, Feb 18, 2011 at 02:15:53PM +0100, Thomas Weber wrote:
> When compiling linux-omap with 'make CONFIG_DEBUG_SECTION_MISMATCH=y'
> the following output occurs:
> 
> WARNING: arch/arm/plat-omap/built-in.o(.data+0x6e8): Section mismatch in
> reference from the variable omap_driver to the function
> .init.text:omap_cpu_init()
> The variable omap_driver references
> the function __init omap_cpu_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,
> 
> This patch fixes this by adding __refdata to the omap_driver variable.
> 
> Signed-off-by: Thomas Weber <weber@xxxxxxxxxxxxx>
> ---
>  arch/arm/plat-omap/cpu-omap.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/arm/plat-omap/cpu-omap.c b/arch/arm/plat-omap/cpu-omap.c
> index 11c54ec..17fdd5f 100644
> --- a/arch/arm/plat-omap/cpu-omap.c
> +++ b/arch/arm/plat-omap/cpu-omap.c
> @@ -144,7 +144,7 @@ static struct freq_attr *omap_cpufreq_attr[] = {
>  	NULL,
>  };
>  
> -static struct cpufreq_driver omap_driver = {
> +static struct cpufreq_driver omap_driver __refdata = {
>  	.flags		= CPUFREQ_STICKY,
>  	.verify		= omap_verify_speed,
>  	.target		= omap_target,
This is correct for a single case.  But actually the better fix would be
to remove the .init member of struct cpufreq_driver and change the
prototype of cpufreq_register_driver from

	int (*)(struct cpufreq_driver *)

to

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

and pass the init function directly to it.
This way you don't need __refdata (which should be an exception) and you
don't waste memory for a pointer that is never used after
cpufreq_register_driver returns.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
--
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


[Index of Archives]     [Linux Kernel Devel]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Forum]     [Linux SCSI]

  Powered by Linux