2008-08-20 19:08:23

by Marcin Ślusarz

[permalink] [raw]
Subject: [PATCH] x86, mmiotrace: silence section mismatch warning - leave_uniprocessor

WARNING: vmlinux.o(.text+0x180af): Section mismatch in reference from the function leave_uniprocessor() to the function .cpuinit.text:cpu_up()
The function leave_uniprocessor() references
the function __cpuinit cpu_up().
This is often because leave_uniprocessor lacks a __cpuinit
annotation or the annotation of cpu_up is wrong.

leave_uniprocessor calls cpu_up only when CONFIG_HOTPLUG_CPU is set,
so it can be safely annotated as __ref

Signed-off-by: Marcin Slusarz <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Pekka Paalanen <[email protected]>
---
arch/x86/mm/mmio-mod.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/arch/x86/mm/mmio-mod.c b/arch/x86/mm/mmio-mod.c
index e7397e1..635b50e 100644
--- a/arch/x86/mm/mmio-mod.c
+++ b/arch/x86/mm/mmio-mod.c
@@ -430,7 +430,9 @@ static void enter_uniprocessor(void)
"may miss events.\n");
}

-static void leave_uniprocessor(void)
+/* __ref because leave_uniprocessor calls cpu_up which is __cpuinit,
+ but this whole function is ifdefed CONFIG_HOTPLUG_CPU */
+static void __ref leave_uniprocessor(void)
{
int cpu;
int err;
--
1.5.4.5


2008-08-21 10:35:58

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] x86, mmiotrace: silence section mismatch warning - leave_uniprocessor


* Marcin Slusarz <[email protected]> wrote:

> WARNING: vmlinux.o(.text+0x180af): Section mismatch in reference from the function leave_uniprocessor() to the function .cpuinit.text:cpu_up()
> The function leave_uniprocessor() references
> the function __cpuinit cpu_up().
> This is often because leave_uniprocessor lacks a __cpuinit
> annotation or the annotation of cpu_up is wrong.
>
> leave_uniprocessor calls cpu_up only when CONFIG_HOTPLUG_CPU is set,
> so it can be safely annotated as __ref

applied to tip/x86/urgent, thanks Marcin.

Ingo