90140c30a7
Fix: WARNING: vmlinux.o(.text+0x247c): Section mismatch in reference from the function cpu_idle() to the function .cpuexit.text:cpu_die() The function cpu_idle() references a function in an exit section. Often the function cpu_die() has valid usage outside the exit section and the fix is to remove the __cpuexit annotation of cpu_die. WARNING: vmlinux.o(.cpuexit.text+0x3c): Section mismatch in reference from the function cpu_die() to the function .cpuinit.text:secondary_start_kernel() The function __cpuexit cpu_die() references a function __cpuinit secondary_start_kernel(). This is often seen when error handling in the exit function uses functionality in the init path. The fix is often to remove the __cpuinit annotation of secondary_start_kernel() so it may be used outside an init section. Sam says: > The annotation of cpu_die() is wrong. > To be annotated __cpuexit the function shall: > - be used in exit context and only in exit context with HOTPLUG_CPU=n > - be used outside exit context with HOTPLUG_CPU=y So, this also means __cpu_disable(), __cpu_die() and twd_timer_stop() are also wrong. However, removing __cpuexit from cpu_die() creates: WARNING: vmlinux.o(.text+0x6834): Section mismatch in reference from the function cpu_die() to the function .cpuinit.text:secondary_start_kernel() The function cpu_die() references the function __cpuinit secondary_start_kernel(). This is often because cpu_die lacks a __cpuinit annotation or the annotation of secondary_start_kernel is wrong. so fix this using __ref. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Acked-by: Sam Ravnborg <sam@ravnborg.org> |
||
---|---|---|
.. | ||
boot | ||
common | ||
configs | ||
include/asm | ||
kernel | ||
lib | ||
mach-aaec2000 | ||
mach-at91 | ||
mach-bcmring | ||
mach-clps711x | ||
mach-davinci | ||
mach-ebsa110 | ||
mach-ep93xx | ||
mach-footbridge | ||
mach-gemini | ||
mach-h720x | ||
mach-integrator | ||
mach-iop13xx | ||
mach-iop32x | ||
mach-iop33x | ||
mach-ixp4xx | ||
mach-ixp23xx | ||
mach-ixp2000 | ||
mach-kirkwood | ||
mach-ks8695 | ||
mach-l7200 | ||
mach-lh7a40x | ||
mach-loki | ||
mach-mmp | ||
mach-msm | ||
mach-mv78xx0 | ||
mach-mx1 | ||
mach-mx2 | ||
mach-mx3 | ||
mach-mx25 | ||
mach-mxc91231 | ||
mach-netx | ||
mach-nomadik | ||
mach-ns9xxx | ||
mach-omap1 | ||
mach-omap2 | ||
mach-orion5x | ||
mach-pnx4008 | ||
mach-pxa | ||
mach-realview | ||
mach-rpc | ||
mach-s3c24a0/include/mach | ||
mach-s3c2400 | ||
mach-s3c2410 | ||
mach-s3c2412 | ||
mach-s3c2440 | ||
mach-s3c2442 | ||
mach-s3c2443 | ||
mach-s3c6400 | ||
mach-s3c6410 | ||
mach-s5pc100 | ||
mach-sa1100 | ||
mach-shark | ||
mach-stmp37xx | ||
mach-stmp378x | ||
mach-u300 | ||
mach-versatile | ||
mach-w90x900 | ||
mm | ||
nwfpe | ||
oprofile | ||
plat-iop | ||
plat-mxc | ||
plat-omap | ||
plat-orion | ||
plat-pxa | ||
plat-s3c | ||
plat-s3c24xx | ||
plat-s3c64xx | ||
plat-s5pc1xx | ||
plat-stmp3xxx | ||
tools | ||
vfp | ||
Kconfig | ||
Kconfig-nommu | ||
Kconfig.debug | ||
Makefile |