Fix section mismatch
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 ();
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 'identify_cpu' (at offset0x6571) and 'IRQ0x20_interrupt'
--------- 8< --------
Quoted 7 lines
It's because
identify_cpu()which is__cpuinitcallsmtrr_bp_init()which is__init().__cpuinit()expands to nothing ifCONFIG_HOTPLUG_CPU=yand so the call is illegal.Signed-off-by Bernhard Walle <[email protected]>
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/