From: Michael Adler Date: Mon, 20 Oct 2014 21:45:08 +0000 (-0500) Subject: sim: mmap: correct behavior for fixed address X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7254d5742a7b9df0f24fcf5b35e231a0fa0d777a;p=gem5.git sim: mmap: correct behavior for fixed address Change mmap fixed address request to return an error if the mapping is impossible due to conflict instead of what I believe used to be silent corruption. Committed by: Nilay Vaish --- diff --git a/src/sim/syscall_emul.hh b/src/sim/syscall_emul.hh index a106a1939..034a7043b 100644 --- a/src/sim/syscall_emul.hh +++ b/src/sim/syscall_emul.hh @@ -1256,10 +1256,8 @@ mmapFunc(SyscallDesc *desc, int num, LiveProcess *p, ThreadContext *tc) // whether we clobber them or not depends on whether the caller // specified MAP_FIXED if (flags & OS::TGT_MAP_FIXED) { - // MAP_FIXED specified: clobber existing mappings - warn("mmap: MAP_FIXED at 0x%x overwrites existing mappings\n", - start); - clobber = true; + // MAP_FIXED specified: map attempt fails + return -EINVAL; } else { // MAP_FIXED not specified: ignore suggested start address warn("mmap: ignoring suggested map address 0x%x\n", start);