Messages in this thread | | | Date | Fri, 15 Aug 2008 14:32:06 +0200 | From | Marcin Slusarz <> | Subject | Re: [PATCH] x86: fix 2 section mismatch warnings - find_and_reserve_crashkernel |
| |
On Wed, Aug 13, 2008 at 04:05:55PM +0200, Ingo Molnar wrote: > > * Ingo Molnar <mingo@elte.hu> 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
| |