Return-Path: Received: from sc8-sf-mx2-b.sourceforge.net ([10.3.1.92] helo=mail.sourceforge.net) by sc8-sf-list1-new.sourceforge.net with esmtp (Exim 4.43) id 1JpSA6-0003lV-Tb for user-mode-linux-devel@lists.sourceforge.net; Fri, 25 Apr 2008 10:56:43 -0700 Received: from [198.99.130.12] (helo=saraswathi.solana.com) by mail.sourceforge.net with esmtps (TLSv1:AES256-SHA:256) (Exim 4.44) id 1JpSA1-0005Pz-QM for user-mode-linux-devel@lists.sourceforge.net; Fri, 25 Apr 2008 10:56:41 -0700 Date: Fri, 25 Apr 2008 13:56:18 -0400 From: Jeff Dike Message-ID: <20080425175618.GA11208@c2.user-mode-linux.org> MIME-Version: 1.0 Content-Disposition: inline Subject: [uml-devel] [PATCH 19/19] UML - Physical memory shouldn't include initial stack List-Id: The user-mode Linux development list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: user-mode-linux-devel-bounces@lists.sourceforge.net Errors-To: user-mode-linux-devel-bounces@lists.sourceforge.net To: Andrew Morton , LKML , uml-devel Cc: "Christopher S. Aker" The top of physical memory should be below the initial process stack, not the top of the address space, at least for as long as the stack isn't known to the kernel VM system and appropriately reserved. Cc: "Christopher S. Aker" Signed-off-by: Jeff Dike --- arch/um/kernel/um_arch.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) Index: linux-2.6-git/arch/um/kernel/um_arch.c =================================================================== --- linux-2.6-git.orig/arch/um/kernel/um_arch.c 2008-04-24 15:16:52.000000000 -0400 +++ linux-2.6-git/arch/um/kernel/um_arch.c 2008-04-24 16:04:52.000000000 -0400 @@ -258,6 +258,7 @@ int __init linux_main(int argc, char **a { unsigned long avail, diff; unsigned long virtmem_size, max_physmem; + unsigned long stack; unsigned int i, add; char * mode; @@ -347,7 +348,9 @@ int __init linux_main(int argc, char **a } virtmem_size = physmem_size; - avail = TASK_SIZE - start_vm; + stack = (unsigned long) argv; + stack &= ~(1024 * 1024 - 1); + avail = stack - start_vm; if (physmem_size > avail) virtmem_size = avail; end_vm = start_vm + virtmem_size; ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel