Fix usage of setup_arg_pages() in IA64, MIPS, S390 and Sparc64
Subsystems (3)
PATCH 1/1 Fix usage of setup_arg_pages() in IA64, MIPS, S390 and Sparc64
The attached patch fixes the usage of setup_arg_pages() in the IA64, MIPS, S390 and Sparc64 arches. This function now takes an extra parameter: the initial top of stack. This is useful in uClinux when there's no fixed location to which the stack pointer can be initialised.
---
warthog>diffstat ../setup_arg_pages-2610rc1mm4.diff
ia64/ia32/binfmt_elf32.c | 2 +- mips/kernel/irixelf.c | 2 +- s390/kernel/binfmt_elf32.c | 2 +- sparc64/kernel/binfmt_aout32.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-)
arch/ia64/ia32/binfmt_elf32.c renamed from warthog/kernels/linux-2.6.10-rc1-mm4/arch/ia64/ia32/binfmt_elf32.c +1 -1
@@ -35,7 +35,7 @@ extern void ia64_elf32_init (struct pt_rstatic void elf32_set_personality (void ); -#define setup_arg_pages (bprm,exec) ia32_setup_arg_pages(bprm,exec) +#define setup_arg_pages (bprm,tos,exec) ia32_setup_arg_pages(bprm,exec)#define elf_map elf32_map#undef SET_PERSONALITY
arch/mips/kernel/irixelf.c renamed from warthog/kernels/linux-2.6.10-rc1-mm4/arch/mips/kernel/irixelf.c +1 -1
@@ -687,7 +687,7 @@ static int load_irix_binary(struct linux* change some of these later. */ current->mm->rss =0 ; -setup_arg_pages (bprm,EXSTACK_DEFAULT ); +setup_arg_pages (bprm,STACK_TOP ,EXSTACK_DEFAULT ); current->mm->start_stack = bprm->p;/* At this point, we assume that the image should be loaded at
arch/s390/kernel/binfmt_elf32.c renamed from warthog/kernels/linux-2.6.10-rc1-mm4/arch/s390/kernel/binfmt_elf32.c +1 -1
@@ -164,7 +164,7 @@ struct elf_prpsinfo32#undef start_thread#define start_thread start_thread31 -#define setup_arg_pages (bprm, exec) setup_arg_pages32(bprm, exec) +#define setup_arg_pages (bprm, tos, exec) setup_arg_pages32(bprm, exec)MODULE_DESCRIPTION ("Binary format loader for compatibility with 32bit Linux for S390 binaries," " Copyright 2000 IBM Corporation" );
arch/sparc64/kernel/binfmt_aout32.c renamed from warthog/kernels/linux-2.6.10-rc1-mm4/arch/sparc64/kernel/binfmt_aout32.c +1 -1
@@ -311,7 +311,7 @@ beyond_if: orig_thr_flags =current_thread_info ()->flags;current_thread_info ()->flags |= _TIF_32BIT; - retval =setup_arg_pages (bprm,EXSTACK_DEFAULT ); + retval =setup_arg_pages (bprm,STACK_TOP ,EXSTACK_DEFAULT );if (retval <0 ) {current_thread_info ()->flags = orig_thr_flags;
Quoted 4 lines · On Wed, 10 Nov 2004 11:24:19 +0000 David Howells <[email protected]> wrote:
The attached patch fixes the usage of
setup_arg_pages()in the IA64, MIPS, S390 and Sparc64 arches. This function now takes an extra parameter: the initial top of stack. This is useful in uClinux when there's no fixed location to which the stack pointer can be initialised.
The sparc64 part looks perfectly fine to me.
Quoted 9 lines · David S. Miller
On Wed, 10 Nov 2004 11:24:19 +0000
Quoted 4 lines · David Howells
The attached patch fixes the usage of
setup_arg_pages()in the IA64, MIPS, S390 and Sparc64 arches. This function now takes an extra
parameter: the initial top of stack. This is useful in uClinux when there's no fixed location to which the stack pointer can be initialised.The sparc64 part looks perfectly fine to me.
And ia64 builds and boots with the change.
Jesse