Skip to contentSkip to conversation

Fix section mismatch

PATCH In review Bernhard Walle 2 participants 2 messages May 11, 2007 – May 20, 2007

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Fix section mismatch

This patch fixes following compile warning:

--------- >8 --------
WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.text:mtrr_bp_init from .text between 'id entify_cpu' (at offset 0x6571) and 'IRQ0x20_interrupt'
--------- 8< --------

It's because identify_cpu() which is __cpuinit calls mtrr_bp_init() which is __init(). __cpuinit() expands to nothing if CONFIG_HOTPLUG_CPU=y and so the call is illegal.

---
 arch/i386/kernel/cpu/mtrr/generic.c |    2 +-
 arch/i386/kernel/cpu/mtrr/main.c    |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
arch/i386/kernel/cpu/mtrr/generic.c +1 -1
@@ -78,7 +78,7 @@ static void __cpuinit print_fixed(unsign
 }
 
 /*  Grab all of the MTRR state for this CPU into *state  */
-void __init get_mtrr_state(void)
+void get_mtrr_state(void)
 {
 	unsigned int i;
 	struct mtrr_var_range *vrs;
arch/i386/kernel/cpu/mtrr/main.c +1 -1
@@ -639,7 +639,7 @@ static struct sysdev_driver mtrr_sysdev_
  * initialized (i.e. before smp_init()).
  * 
  */
-void __init mtrr_bp_init(void)
+void mtrr_bp_init(void)
 {
 	init_ifs();
 
#1 lore raw
Quoted 8 lines · Bernhard Walle

This patch fixes following compile warning:

--------- >8 --------
WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.text:mtrr_bp_init from .text between 'id entify_cpu' (at offset 0x6571) and 'IRQ0x20_interrupt'
--------- 8< --------

Quoted 7 lines

It's because identify_cpu() which is __cpuinit calls mtrr_bp_init() which is __init(). __cpuinit() expands to nothing if CONFIG_HOTPLUG_CPU=y and so the call is illegal.

I cannot see what goes wrong here and how your patch fixes this. Can you please send me a copy of your .config.

[I have submitted a patch to add both __init tags today and
needs to find out if that one is bogus].

Sam

Quoted 32 lines
---
 arch/i386/kernel/cpu/mtrr/generic.c |    2 +-
 arch/i386/kernel/cpu/mtrr/main.c    |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
arch/i386/kernel/cpu/mtrr/generic.c +1 -1
@@ -78,7 +78,7 @@ static void __cpuinit print_fixed(unsign
 }
 
 /*  Grab all of the MTRR state for this CPU into *state  */
-void __init get_mtrr_state(void)
+void get_mtrr_state(void)
 {
 	unsigned int i;
 	struct mtrr_var_range *vrs;
arch/i386/kernel/cpu/mtrr/main.c +1 -2
@@ -639,7 +639,7 @@ static struct sysdev_driver mtrr_sysdev_
  * initialized (i.e. before smp_init()).
  * 
  */
-void __init mtrr_bp_init(void)
+void mtrr_bp_init(void)
 {
 	init_ifs();
 
-

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/