Skip to contentSkip to conversation

uml: physical memory shouldn't include initial stack

PATCH In review Jeff Dike 2 participants 2 messages Aug 5, 2008 – Aug 16, 2008 User-mode Linux (UML)

lore
Share & tools
lore

Jeff Dike

author
#0 lore raw

PATCH 3/14 uml: physical memory shouldn't include initial stack

From 60a2988aea701a6424809a5432bf068667aac177

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.

---
 arch/um/kernel/um_arch.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
arch/um/kernel/um_arch.c +4 -1
index a6c1dd1..9cecb42 100644
@@ -259,6 +259,7 @@ int __init linux_main(int argc, char **argv)
 	unsigned long avail, diff;
 	unsigned long virtmem_size, max_physmem;
 	unsigned int i, add;
+	unsigned long stack;
 	char * mode;
 
 	for (i = 1; i < argc; i++) {
@@ -347,7 +348,9 @@ int __init linux_main(int argc, char **argv)
 	}
 
 	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;
Signature · 12 lines
1.5.5.1


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
User-mode-linux-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
#1 lore raw

patch uml-physical-memory-shouldn-t-include-initial-stack.patch added to 2.6.25-stable tree

This is a note to let you know that we have just queued up the patch titled

Subject: uml: physical memory shouldn't include initial stack

to the 2.6.25-stable tree. Its filename is

uml-physical-memory-shouldn-t-include-initial-stack.patch

A git repo of this tree can be found at
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

From [email protected] Tue Aug 5 13:14:54 2008
From: Jeff Dike <[email protected]>
Date: Tue, 5 Aug 2008 16:14:04 -0400
Subject: uml: physical memory shouldn't include initial stack
To: [email protected]
Cc: LKML <[email protected]>, uml-devel <[email protected]>
Message-ID: <[email protected]>
Content-Disposition: inline

From: Jeff Dike <[email protected]>

commit 60a2988aea701a6424809a5432bf068667aac177 upstream

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.

---
 arch/um/kernel/um_arch.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
arch/um/kernel/um_arch.c +4 -1
@@ -259,6 +259,7 @@ int __init linux_main(int argc, char **a
 	unsigned long avail, diff;
 	unsigned long virtmem_size, max_physmem;
 	unsigned int i, add;
+	unsigned long stack;
 	char * mode;
 
 	for (i = 1; i < argc; i++) {
@@ -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;

Patches currently in stable-queue which might be from [email protected] are

queue-2.6.25/uml-fix-build-when-slob-is-enabled.patch queue-2.6.25/uml-fix-bad-ntp-interaction-with-clock.patch queue-2.6.25/uml-physical-memory-shouldn-t-include-initial-stack.patch queue-2.6.25/uml-track-and-make-up-lost-ticks.patch queue-2.6.25/uml-missed-kmalloc-in-pcap_user.c.patch queue-2.6.25/uml-deal-with-host-time-going-backwards.patch queue-2.6.25/uml-deal-with-inaccessible-address-space-start.patch queue-2.6.25/uml-missing-export-of-csum_partial-on-uml-amd64.patch queue-2.6.25/uml-memcpy-export-needs-to-follow-host-declaration.patch queue-2.6.25/uml-stub-needs-to-tolerate-sigwinch.patch queue-2.6.25/uml-work-around-broken-host-ptrace_sysemu.patch queue-2.6.25/uml-fix-gcc-ices-and-unresolved-externs.patch queue-2.6.25/uml-fix-boot-crash.patch

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
User-mode-linux-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel