[PATCH] uclinux: use MAP_PRIVATE when mmaping code regions in flat binary loader
authorGreg Ungerer <gerg@snapgear.com>
Fri, 2 Sep 2005 00:42:52 +0000 (10:42 +1000)
committerLinus Torvalds <torvalds@evo.osdl.org>
Fri, 2 Sep 2005 07:57:31 +0000 (00:57 -0700)
Use MAP_PRIVATE when calling mmap to get memory for the code region.
The flat loader was using MAP_SHARED, but underlying changes to the
MMUless mmap means this is now wrong.

Signed-off-by: Greg Ungerer <gerg@uclinux.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/binfmt_flat.c

index c8998dc668824df41ef382e65af0b76124d41536..7974efa107bce19795f0889da79955416db41adb 100644 (file)
@@ -520,7 +520,7 @@ static int load_flat_file(struct linux_binprm * bprm,
                DBG_FLT("BINFMT_FLAT: ROM mapping of file (we hope)\n");
 
                down_write(&current->mm->mmap_sem);
-               textpos = do_mmap(bprm->file, 0, text_len, PROT_READ|PROT_EXEC, MAP_SHARED, 0);
+               textpos = do_mmap(bprm->file, 0, text_len, PROT_READ|PROT_EXEC, MAP_PRIVATE, 0);
                up_write(&current->mm->mmap_sem);
                if (!textpos  || textpos >= (unsigned long) -4096) {
                        if (!textpos)