+1 looks good to me....
-----Original Message----- From: Jon Medhurst (Tixy) [mailto:tixy@linaro.org] Sent: 06 September 2013 15:10 To: Mark Brown Cc: Mark Hambleton; James King; Alex Shi; Linaro Kernel Subject: [PATCH] ARM: kernel: Fix section mismatches caused by commit bba0859a99
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 ---
This patch is aimed at the Linaro Stable Kernel. Do we need some standard way of annotating patches for that?
Note, this issue does not affect mainline Linux or stable kernel trees because the upstream version of the problematic patch (commit 8121cf312a1) first appears in Linux 3.11 which also removed all cpuinit annotations in the kernel.
arch/arm/kernel/head.S | 1 - arch/arm/kernel/smp.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index 8bac553..2725c87 100644 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S @@ -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. diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index 84d55da..a666911 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c @@ -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, -- 1.7.10.4