Re: [PATCH] x86: fix 2 section mismatch warnings -find_and_reserve_crashkernel

From: Marcin Slusarz
Date: Fri Aug 15 2008 - 08:32:43 EST


On Wed, Aug 13, 2008 at 04:05:55PM +0200, Ingo Molnar wrote:
>
> * Ingo Molnar <mingo@xxxxxxx> wrote:
>
> > # 844342a: x86: fix section mismatch warning - spp_getpage()
>
> i've reverted this one as it's wrong and can cause crashes. For example
> native_set_fixmap() gets called on 32-bit kernels from the ELF loader,
> via arch_setup_additional_pages().


$ git grep arch_setup_additional_pages | cat
arch/powerpc/include/asm/elf.h:/* vDSO has arch_setup_additional_pages */
arch/powerpc/include/asm/elf.h:extern int arch_setup_additional_pages(struct linux_binprm *bprm,
arch/powerpc/kernel/vdso.c:int arch_setup_additional_pages(struct linux_binprm *bprm,
arch/sh/include/asm/elf.h:/* vDSO has arch_setup_additional_pages */
arch/sh/include/asm/elf.h:extern int arch_setup_additional_pages(struct linux_binprm *bprm,
arch/sh/kernel/vsyscall/vsyscall.c:int arch_setup_additional_pages(struct linux_binprm *bprm,
arch/x86/vdso/vdso32-setup.c:#define arch_setup_additional_pages syscall32_setup_pages
arch/x86/vdso/vdso32-setup.c:int arch_setup_additional_pages(struct linux_binprm *bprm, int exstack)
arch/x86/vdso/vma.c:int arch_setup_additional_pages(struct linux_binprm *bprm, int exstack)
fs/binfmt_elf.c: retval = arch_setup_additional_pages(bprm, executable_stack);
fs/compat_binfmt_elf.c:#ifdef compat_arch_setup_additional_pages
fs/compat_binfmt_elf.c:#undef arch_setup_additional_pages
fs/compat_binfmt_elf.c:#define arch_setup_additional_pages compat_arch_setup_additional_pages
include/asm-x86/elf.h:extern int arch_setup_additional_pages(struct linux_binprm *bprm,
include/asm-x86/elf.h:#define compat_arch_setup_additional_pages syscall32_setup_pages

$ git grep native_set_fixmap | cat
arch/x86/kernel/paravirt.c: .set_fixmap = native_set_fixmap,
arch/x86/mm/pgtable.c:void __native_set_fixmap(enum fixed_addresses idx, pte_t pte)
arch/x86/mm/pgtable.c:void native_set_fixmap(enum fixed_addresses idx, unsigned long phys, pgprot_t flags)
arch/x86/mm/pgtable.c: __native_set_fixmap(idx, pfn_pte(phys >> PAGE_SHIFT, flags));
arch/x86/xen/enlighten.c: __native_set_fixmap(idx, pte);
include/asm-x86/fixmap.h:void __native_set_fixmap(enum fixed_addresses idx, pte_t pte);
include/asm-x86/fixmap.h:void native_set_fixmap(enum fixed_addresses idx,
include/asm-x86/fixmap.h: native_set_fixmap(idx, phys, flags);

I looked at both implementations of arch_setup_additional_pages and didn't see any call to native_set_fixmap
or function which calls directly native_set_fixmap... Can you tell me what's the callchain?

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