aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/binfmt_aout32.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2006-03-17 17:41:03 -0500
committerDavid S. Miller <davem@sunset.davemloft.net>2006-03-20 04:16:35 -0500
commita91690ddd05ab0b7fbdd37733875525ac75c20f2 (patch)
treef6937c0ce29c79078d6df8346a374a7b9947f360 /arch/sparc64/kernel/binfmt_aout32.c
parentb5e7ae5dd034c2c0ed75c31fca04a805097817bc (diff)
[SPARC64]: Top-down address space allocation for 32-bit tasks.
Currently allocations are very constrained for 32-bit processes. It grows down-up from 0x70000000 to 0xf0000000 which gives about 2GB of stack + dynamic mmap() space. So support the top-down method, and we need to override the generic helper function in order to deal with D-cache coloring. With these changes I was able to squeeze out a mmap() just over 3.6GB in size in a 32-bit process. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/kernel/binfmt_aout32.c')
-rw-r--r--arch/sparc64/kernel/binfmt_aout32.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/sparc64/kernel/binfmt_aout32.c b/arch/sparc64/kernel/binfmt_aout32.c
index cb9ecd0172c0..d7caa60a0074 100644
--- a/arch/sparc64/kernel/binfmt_aout32.c
+++ b/arch/sparc64/kernel/binfmt_aout32.c
@@ -239,6 +239,8 @@ static int load_aout32_binary(struct linux_binprm * bprm, struct pt_regs * regs)
239 (current->mm->start_data = N_DATADDR(ex)); 239 (current->mm->start_data = N_DATADDR(ex));
240 current->mm->brk = ex.a_bss + 240 current->mm->brk = ex.a_bss +
241 (current->mm->start_brk = N_BSSADDR(ex)); 241 (current->mm->start_brk = N_BSSADDR(ex));
242 current->mm->free_area_cache = current->mm->mmap_base;
243 current->mm->cached_hole_size = 0;
242 244
243 current->mm->mmap = NULL; 245 current->mm->mmap = NULL;
244 compute_creds(bprm); 246 compute_creds(bprm);