Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S261700AbUKJLZK (ORCPT ); Wed, 10 Nov 2004 06:25:10 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S261705AbUKJLZJ (ORCPT ); Wed, 10 Nov 2004 06:25:09 -0500 Received: from mx1.redhat.com ([66.187.233.31]:48620 "EHLO mx1.redhat.com") by vger.kernel.org with ESMTP id S261692AbUKJLYc (ORCPT ); Wed, 10 Nov 2004 06:24:32 -0500 From: David Howells To: akpm@osdl.org, davem@redhat.com, Arnd Bergmann , Jesse Barnes cc: linux-kernel@vger.kernel.org Subject: [PATCH] Fix usage of setup_arg_pages() in IA64, MIPS, S390 and Sparc64 User-Agent: EMH/1.14.1 SEMI/1.14.5 (Awara-Onsen) FLIM/1.14.5 (Demachiyanagi) APEL/10.6 Emacs/21.3 (i386-redhat-linux-gnu) MULE/5.0 (SAKAKI) MIME-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen") Content-Type: text/plain; charset=US-ASCII Date: Wed, 10 Nov 2004 11:24:19 +0000 Message-ID: <2555.1100085859@redhat.com> Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3580 Lines: 69 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. Signed-Off-By: David Howells --- 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(-) diff -uNrp /warthog/kernels/linux-2.6.10-rc1-mm4/arch/ia64/ia32/binfmt_elf32.c linux-2.6.10-rc1-mm4-frv/arch/ia64/ia32/binfmt_elf32.c --- /warthog/kernels/linux-2.6.10-rc1-mm4/arch/ia64/ia32/binfmt_elf32.c 2004-10-19 10:41:43.000000000 +0100 +++ linux-2.6.10-rc1-mm4-frv/arch/ia64/ia32/binfmt_elf32.c 2004-11-10 11:08:39.005018449 +0000 @@ -35,7 +35,7 @@ extern void ia64_elf32_init (struct pt_r static 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 diff -uNrp /warthog/kernels/linux-2.6.10-rc1-mm4/arch/mips/kernel/irixelf.c linux-2.6.10-rc1-mm4-frv/arch/mips/kernel/irixelf.c --- /warthog/kernels/linux-2.6.10-rc1-mm4/arch/mips/kernel/irixelf.c 2004-10-27 17:32:08.000000000 +0100 +++ linux-2.6.10-rc1-mm4-frv/arch/mips/kernel/irixelf.c 2004-11-10 11:05:21.719356169 +0000 @@ -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 diff -uNrp /warthog/kernels/linux-2.6.10-rc1-mm4/arch/s390/kernel/binfmt_elf32.c linux-2.6.10-rc1-mm4-frv/arch/s390/kernel/binfmt_elf32.c --- /warthog/kernels/linux-2.6.10-rc1-mm4/arch/s390/kernel/binfmt_elf32.c 2004-11-09 18:15:25.000000000 +0000 +++ linux-2.6.10-rc1-mm4-frv/arch/s390/kernel/binfmt_elf32.c 2004-11-10 11:10:13.682167102 +0000 @@ -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"); diff -uNrp /warthog/kernels/linux-2.6.10-rc1-mm4/arch/sparc64/kernel/binfmt_aout32.c linux-2.6.10-rc1-mm4-frv/arch/sparc64/kernel/binfmt_aout32.c --- /warthog/kernels/linux-2.6.10-rc1-mm4/arch/sparc64/kernel/binfmt_aout32.c 2004-10-27 17:32:14.000000000 +0100 +++ linux-2.6.10-rc1-mm4-frv/arch/sparc64/kernel/binfmt_aout32.c 2004-11-10 11:07:27.590940142 +0000 @@ -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; - 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/