lkml.org 
[lkml]   [2007]   [Sep]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] [41/50] i386: fix section mismatch warning in intel.c
    Date

    From: Sam Ravnborg <sam@ravnborg.org>
    Fix following section mismatch warning:
    WARNING: vmlinux.o(.text+0xc88c): Section mismatch: reference to .init.text:trap_init_f00f_bug (between 'init_intel' and 'cpuid4_cache_lookup')

    init_intel are __cpuint where trap_init_f00f_bug is __init.
    Fixed by declaring trap_init_f00f_bug __cpuinit.

    Moved the defintion of trap_init_f00f_bug to the sole user in init.c
    so the ugly prototype in intel.c could get killed.

    Frank van Maarseveen <frankvm@frankvm.com> supplied the .config used
    to reproduce the warning.

    Cc: Frank van Maarseveen <frankvm@frankvm.com>
    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
    Signed-off-by: Andi Kleen <ak@suse.de>

    ---
    ---
    arch/i386/kernel/cpu/intel.c | 17 +++++++++++++++--
    arch/i386/kernel/traps.c | 14 --------------
    2 files changed, 15 insertions(+), 16 deletions(-)

    Index: linux/arch/i386/kernel/cpu/intel.c
    ===================================================================
    --- linux.orig/arch/i386/kernel/cpu/intel.c
    +++ linux/arch/i386/kernel/cpu/intel.c
    @@ -8,6 +8,7 @@
    #include <linux/module.h>

    #include <asm/processor.h>
    +#include <asm/pgtable.h>
    #include <asm/msr.h>
    #include <asm/uaccess.h>

    @@ -19,8 +20,6 @@
    #include <mach_apic.h>
    #endif

    -extern int trap_init_f00f_bug(void);
    -
    #ifdef CONFIG_X86_INTEL_USERCOPY
    /*
    * Alignment at which movsl is preferred for bulk memory copies.
    @@ -95,6 +94,20 @@ static int __cpuinit num_cpu_cores(struc
    return 1;
    }

    +#ifdef CONFIG_X86_F00F_BUG
    +static void __cpuinit trap_init_f00f_bug(void)
    +{
    + __set_fixmap(FIX_F00F_IDT, __pa(&idt_table), PAGE_KERNEL_RO);
    +
    + /*
    + * Update the IDT descriptor and reload the IDT so that
    + * it uses the read-only mapped virtual address.
    + */
    + idt_descr.address = fix_to_virt(FIX_F00F_IDT);
    + load_idt(&idt_descr);
    +}
    +#endif
    +
    static void __cpuinit init_intel(struct cpuinfo_x86 *c)
    {
    unsigned int l2 = 0;
    Index: linux/arch/i386/kernel/traps.c
    ===================================================================
    --- linux.orig/arch/i386/kernel/traps.c
    +++ linux/arch/i386/kernel/traps.c
    @@ -1180,20 +1180,6 @@ asmlinkage void math_emulate(long arg)

    #endif /* CONFIG_MATH_EMULATION */

    -#ifdef CONFIG_X86_F00F_BUG
    -void __init trap_init_f00f_bug(void)
    -{
    - __set_fixmap(FIX_F00F_IDT, __pa(&idt_table), PAGE_KERNEL_RO);
    -
    - /*
    - * Update the IDT descriptor and reload the IDT so that
    - * it uses the read-only mapped virtual address.
    - */
    - idt_descr.address = fix_to_virt(FIX_F00F_IDT);
    - load_idt(&idt_descr);
    -}
    -#endif
    -
    /*
    * This needs to use 'idt_table' rather than 'idt', and
    * thus use the _nonmapped_ version of the IDT, as the
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2007-09-22 00:51    [W:0.021 / U:31.500 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site