[LinuxPPS] 18 Aug 07:10 - x86, percpu: silence section mismatch warnings related to EARLY_PER_CPU variables

linuxpps: Marcin Slusarz <> webmaster at enneenne.com
Wed Aug 20 00:00:06 CEST 2008


x86, percpu: silence section mismatch warnings related to EARLY_PER_CPU variables  
  
Quoting Mike Travis in "x86: cleanup early per cpu variables/accesses v4"  
(23ca4bba3e20c6c3cb11c1bb0ab4770b724d39ac):  
  
The DEFINE macro defines the per_cpu variable as well as the early  
map and pointer. It also initializes the per_cpu variable and map  
elements to "_initvalue". The early_* macros provide access to  
the initial map (usually setup during system init) and the early  
pointer. This pointer is initialized to point to the early map  
but is then NULL'ed when the actual per_cpu areas are setup. After  
that the per_cpu variable is the correct access to the variable.  
  
As these variables are NULL'ed before __init sections are dropped  
(in setup_per_cpu_maps), they can be safely annotated as __ref.  
  
This change silences following section mismatch warnings:  
  
WARNING: vmlinux.o(.data+0x46c0): Section mismatch in reference from the variable x86_cpu_to_apicid_early_ptr to the variable .init.data:x86_cpu_to_apicid_early_map  
The variable x86_cpu_to_apicid_early_ptr references  
the variable __initdata x86_cpu_to_apicid_early_map  
If the reference is valid then annotate the  
variable with __init* (see linux/init.h) or name the variable:  
*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,  
  
WARNING: vmlinux.o(.data+0x46c8): Section mismatch in reference from the variable x86_bios_cpu_apicid_early_ptr to the variable .init.data:x86_bios_cpu_apicid_early_map  
The variable x86_bios_cpu_apicid_early_ptr references  
the variable __initdata x86_bios_cpu_apicid_early_map  
If the reference is valid then annotate the  
variable with __init* (see linux/init.h) or name the variable:  
*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,  
  
WARNING: vmlinux.o(.data+0x46d0): Section mismatch in reference from the variable x86_cpu_to_node_map_early_ptr to the variable .init.data:x86_cpu_to_node_map_early_map  
The variable x86_cpu_to_node_map_early_ptr references  
the variable __initdata x86_cpu_to_node_map_early_map  
If the reference is valid then annotate the  
variable with __init* (see linux/init.h) or name the variable:  
*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,  
  
Signed-off-by: Marcin Slusarz   
Cc: Mike Travis   
Signed-off-by: Ingo Molnar   
  
include/asm-x86/percpu.h

URL: http://gitweb.enneenne.com/?p=linuxpps;a=commit;h=c6a92a2501b35880d2e357dbd7f2cbc9a06f1058



More information about the LinuxPPS mailing list