ARM: kernel: Fix section mismatches caused by commit bba0859a99
authorJon Medhurst (Tixy) <tixy@linaro.org>
Tue, 10 Sep 2013 04:01:44 +0000 (12:01 +0800)
committerAlex Shi <alex.shi@linaro.org>
Wed, 11 Sep 2013 14:52:56 +0000 (22:52 +0800)
Commit bba0859a99 (arm: versatile: don't mark pen as __INIT)
introduced the following section mismatch warnings:

WARNING: vmlinux.o(.text+0x18208): Section mismatch in reference from the variable pen to the function .cpuinit.text:secondary_startup()
WARNING: vmlinux.o(.text+0x18210): Section mismatch in reference from the variable pen to the variable .cpuinit.data:pen_release

The first is handled by removing __cpuinitdata from pen_release. This
also fixes and potential bug because the issue commit bba0859a99 was
aimed at fixing meant a CPU not known to the kernel could be spinning
forever in versatile_secondary_startup and polling this pen_release
variable, so it is important its memory isn't discarded and reused after
boot.

The second section mismatch warning is removed by taking __CPUINIT
away from before secondary_startup.

Signed-off-by: Jon Medhurst <tixy@linaro.org>
Signed-off-by: Alex Shi <alex.shi@linaro.org>
arch/arm/kernel/head.S
arch/arm/kernel/smp.c

index 8bac553fe213def562dec9e30cad88c827d6239c..2725c87fade6a6d9aa0f91fd0280c286ee35f007 100644 (file)
@@ -342,7 +342,6 @@ __turn_mmu_on_loc:
        .long   __turn_mmu_on_end
 
 #if defined(CONFIG_SMP)
-       __CPUINIT
 ENTRY(secondary_startup)
        /*
         * Common entry point for secondary CPUs.
index 5919eb451bb9840590091c3d26a922bd65b1d005..7bb63b4ef457e2683072f4a02d3c4182eaa0a38b 100644 (file)
@@ -57,7 +57,7 @@ struct secondary_data secondary_data;
  * control for which core is the next to come out of the secondary
  * boot "holding pen"
  */
-volatile int __cpuinitdata pen_release = -1;
+volatile int pen_release = -1;
 
 enum ipi_msg_type {
        IPI_WAKEUP,