2009-07-12 11:04:22

by Rakib Mullick

[permalink] [raw]
Subject: [PATCH] x86: Fix false positive section mismatch in es7000_32.c

Impact: Fix false positive warning

The variable apic_es7000_cluster references the function __cpuinit
wakeup_secondary_cpu_via_mip() from a noninit section. So we've been
warned by the following warning. To avoid possible collision between
init/noninit, its best to mark the variable as __refdata.

We were warned by the followin warning:

LD arch/x86/kernel/apic/built-in.o
WARNING: arch/x86/kernel/apic/built-in.o(.data+0x198c): Section
mismatch in reference from the variable apic_es7000_cluster to the
function .cpuinit.text:wakeup_secondary_cpu_via_mip()
The variable apic_es7000_cluster references
the function __cpuinit wakeup_secondary_cpu_via_mip()
If the reference is valid then annotate the
variable with __init* or __refdata (see linux/init.h) or name the variable:
*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,

---
Signed-off-by: Rakib Mullick <[email protected]>

--- linus/arch/x86/kernel/apic/es7000_32.c 2009-07-10 12:30:10.000000000 +0600
+++ rakib/arch/x86/kernel/apic/es7000_32.c 2009-07-12 11:21:10.000000000 +0600
@@ -652,7 +652,8 @@ static int es7000_mps_oem_check_cluster(
return ret && es7000_apic_is_cluster();
}

-struct apic apic_es7000_cluster = {
+/* We've been warned by a false positive warning.Use __refdata to keep calm. */
+struct apic __refdata apic_es7000_cluster = {

.name = "es7000",
.probe = probe_es7000,


2009-07-13 16:58:17

by Rakib Mullick

[permalink] [raw]
Subject: [tip:x86/urgent] x86: Fix false positive section mismatch in es7000_32.c

Commit-ID: 151586d0f70405d99324d89aea13706cf6d7f993
Gitweb: http://git.kernel.org/tip/151586d0f70405d99324d89aea13706cf6d7f993
Author: Rakib Mullick <[email protected]>
AuthorDate: Sun, 12 Jul 2009 17:04:12 +0600
Committer: Ingo Molnar <[email protected]>
CommitDate: Mon, 13 Jul 2009 11:03:26 +0200

x86: Fix false positive section mismatch in es7000_32.c

The variable apic_es7000_cluster references the function __cpuinit
wakeup_secondary_cpu_via_mip() from a noninit section. So we've been
warned by the following warning. To avoid possible collision between
init/noninit, its best to mark the variable as __refdata.

We were warned by the following warning:

LD arch/x86/kernel/apic/built-in.o
WARNING: arch/x86/kernel/apic/built-in.o(.data+0x198c): Section
mismatch in reference from the variable apic_es7000_cluster to the
function .cpuinit.text:wakeup_secondary_cpu_via_mip()

Signed-off-by: Rakib Mullick <[email protected]>
LKML-Reference: <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>


---
arch/x86/kernel/apic/es7000_32.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/arch/x86/kernel/apic/es7000_32.c b/arch/x86/kernel/apic/es7000_32.c
index 69328ac..8952a58 100644
--- a/arch/x86/kernel/apic/es7000_32.c
+++ b/arch/x86/kernel/apic/es7000_32.c
@@ -652,7 +652,8 @@ static int es7000_mps_oem_check_cluster(struct mpc_table *mpc, char *oem,
return ret && es7000_apic_is_cluster();
}

-struct apic apic_es7000_cluster = {
+/* We've been warned by a false positive warning.Use __refdata to keep calm. */
+struct apic __refdata apic_es7000_cluster = {

.name = "es7000",
.probe = probe_es7000,