From cd532462ea9e623020ad8449c454ceae9903db7b Mon Sep 17 00:00:00 2001 From: Jeff Dike Date: Mon, 12 May 2008 14:01:57 -0700 Subject: [PATCH] --- yaml --- r: 96459 b: refs/heads/master c: 60a2988aea701a6424809a5432bf068667aac177 h: refs/heads/master i: 96457: dc65b0b6ebc6231feb643ac0fbfbc75b6c4091d4 96455: 031531d697aadf6c04c0c5fd46bc136584d1c42e v: v3 --- [refs] | 2 +- trunk/arch/um/kernel/um_arch.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index bd324be6694e..e7b5906c896f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a7dfa9403bf3b03899d5ef5d10b0c5c3f74b0682 +refs/heads/master: 60a2988aea701a6424809a5432bf068667aac177 diff --git a/trunk/arch/um/kernel/um_arch.c b/trunk/arch/um/kernel/um_arch.c index 82058ac7d481..9db85b2ce698 100644 --- a/trunk/arch/um/kernel/um_arch.c +++ b/trunk/arch/um/kernel/um_arch.c @@ -258,6 +258,7 @@ int __init linux_main(int argc, char **argv) { unsigned long avail, diff; unsigned long virtmem_size, max_physmem; + unsigned long stack; unsigned int i; int add; char * mode; @@ -348,7 +349,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;