2011-02-19 03:14:17

by Stephen Boyd

[permalink] [raw]
Subject: [PATCH] msm: headsmp.S: Fix section mismatch

WARNING: vmlinux.o(.cpuinit.text+0xc80): Section mismatch in
reference from the function boot_secondary() to the variable
.init.text:msm_secondary_startup
The function __cpuinit boot_secondary() references a variable
__init msm_secondary_startup. If msm_secondary_startup is only
used by boot_secondary then annotate msm_secondary_startup with
a matching annotation.

Signed-off-by: Stephen Boyd <[email protected]>
---
arch/arm/mach-msm/headsmp.S | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-msm/headsmp.S b/arch/arm/mach-msm/headsmp.S
index d0c2143..0c631a9 100644
--- a/arch/arm/mach-msm/headsmp.S
+++ b/arch/arm/mach-msm/headsmp.S
@@ -11,7 +11,7 @@
#include <linux/linkage.h>
#include <linux/init.h>

- __INIT
+ __CPUINIT

/*
* MSM specific entry point for secondary CPUs. This provides
--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.


2011-02-20 02:37:19

by Daniel Walker

[permalink] [raw]
Subject: Re: [PATCH] msm: headsmp.S: Fix section mismatch

On Fri, 2011-02-18 at 19:14 -0800, Stephen Boyd wrote:
> WARNING: vmlinux.o(.cpuinit.text+0xc80): Section mismatch in
> reference from the function boot_secondary() to the variable
> .init.text:msm_secondary_startup
> The function __cpuinit boot_secondary() references a variable
> __init msm_secondary_startup. If msm_secondary_startup is only
> used by boot_secondary then annotate msm_secondary_startup with
> a matching annotation.

Description is pretty gross.. Can you just explain how the section
mismatch is happening.

Daniel

2011-02-20 09:10:55

by Russell King - ARM Linux

[permalink] [raw]
Subject: Re: [PATCH] msm: headsmp.S: Fix section mismatch

On Sat, Feb 19, 2011 at 06:26:57PM -0800, Daniel Walker wrote:
> On Fri, 2011-02-18 at 19:14 -0800, Stephen Boyd wrote:
> > WARNING: vmlinux.o(.cpuinit.text+0xc80): Section mismatch in
> > reference from the function boot_secondary() to the variable
> > .init.text:msm_secondary_startup
> > The function __cpuinit boot_secondary() references a variable
> > __init msm_secondary_startup. If msm_secondary_startup is only
> > used by boot_secondary then annotate msm_secondary_startup with
> > a matching annotation.
>
> Description is pretty gross.. Can you just explain how the section
> mismatch is happening.

That's the error message, which is explanitory.

mem_secondary_startup is in the __init section, which is always discarded.
boot_secondary is in the __cpuinit section, which may or may not be
discarded, and if CPU hotplug is enabled, may be called after the __init
section has been discarded.