From 37100312dba2d12957db01ed431ec16d1b41b281 Mon Sep 17 00:00:00 2001 From: cshapiro <cshapiro> Date: Fri, 13 Jul 2007 05:03:03 +0000 Subject: [PATCH] When an address hint is passed to os_validate set the MAP_FIXED flag. --- lisp/Linux-os.c | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/lisp/Linux-os.c b/lisp/Linux-os.c index afdf79127..713008323 100644 --- a/lisp/Linux-os.c +++ b/lisp/Linux-os.c @@ -15,7 +15,7 @@ * GENCGC support by Douglas Crosher, 1996, 1997. * Alpha support by Julian Dolby, 1999. * - * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/Linux-os.c,v 1.27 2006/11/07 11:24:12 cshapiro Exp $ + * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/Linux-os.c,v 1.28 2007/07/13 05:03:03 cshapiro Exp $ * */ @@ -188,28 +188,18 @@ os_vm_address_t os_validate(os_vm_address_t addr, os_vm_size_t len) { int flags = MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE; - os_vm_address_t out_addr; - DPRINTF(0, (stderr, "os_validate %p %d => ", addr, len)); + if (addr) + flags |= MAP_FIXED; - out_addr = mmap(addr, len, OS_VM_PROT_ALL, flags, -1, 0); + addr = mmap(addr, len, OS_VM_PROT_ALL, flags, -1, 0); - if (out_addr == (os_vm_address_t) - 1) { + if (addr == (os_vm_address_t) - 1) { perror("mmap"); return NULL; } - if (addr && (addr != out_addr)) { - fprintf(stderr, - "Couldn't mmap at %p, len %d; got mapping at %p instead", addr, - len, out_addr); - munmap(addr, len); - return NULL; - } - - DPRINTF(0, (stderr, "%p\n", out_addr)); - - return out_addr; + return addr; } void -- GitLab