lkml.org 
[lkml]   [1999]   [Jun]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subjectinit failing in 2.3.6
I am seeing a problem with 2.3.6 where init is failing to start
correctly with an error about not being able to map shared libraries.
(This is on my powermac with the current vger tree, but that's very
close to the official tree these days.)

The problem is that an mmap is failing with ENOMEM. I tracked this
down to the do_munmap call from do_mmap failing because the address
was not page-aligned. It wasn't page-aligned because
get_unmapped_area was returning an non-page-aligned address, because
there was a vma with a non-page-aligned end value. This in turn was
because earlier on, during an execve syscall, load_elf_interp had
called do_brk with a len parameter which wasn't a multiple of the page
size.

I am about to try this patch, which makes do_brk page-align its len
parameter:

--- mm/mmap.c~ Thu Jun 10 09:49:31 1999
+++ mm/mmap.c Tue Jun 11 21:48:50 2019
@@ -728,6 +728,9 @@
struct vm_area_struct * vma;
unsigned long flags, retval;

+ if ((len = PAGE_ALIGN(len)) == 0)
+ return addr;
+
/*
* mlock MCL_FUTURE?
*/
If instead all callers of do_brk should ensure that len is a multiple
of the page-size, I'm sure someone will post a better patch. :-)

Paul.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:52    [W:0.048 / U:0.064 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site