after carefully constructing the correct value for "pos",
authorMike Hibler <hibler@ucbvax.Berkeley.EDU>
Fri, 27 May 1994 11:42:00 +0000 (03:42 -0800)
committerMike Hibler <hibler@ucbvax.Berkeley.EDU>
Fri, 27 May 1994 11:42:00 +0000 (03:42 -0800)
I didn't use it...duh!  Also, require that pos be page-aligned for !MAP_ANON

SCCS-vsn: sys/vm/vm_mmap.c 8.6

usr/src/sys/vm/vm_mmap.c

index 9901bd6..73de83c 100644 (file)
@@ -11,7 +11,7 @@
  *
  * from: Utah $Hdr: vm_mmap.c 1.6 91/10/21$
  *
  *
  * from: Utah $Hdr: vm_mmap.c 1.6 91/10/21$
  *
- *     @(#)vm_mmap.c   8.5 (Berkeley) %G%
+ *     @(#)vm_mmap.c   8.6 (Berkeley) %G%
  */
 
 /*
  */
 
 /*
@@ -182,6 +182,7 @@ mmap(p, uap, retval)
         */
        addr = (vm_offset_t) uap->addr;
        if (((flags & MAP_FIXED) && (addr & PAGE_MASK)) ||
         */
        addr = (vm_offset_t) uap->addr;
        if (((flags & MAP_FIXED) && (addr & PAGE_MASK)) ||
+           ((flags & MAP_ANON) == 0 && (pos & PAGE_MASK)) ||
            (ssize_t)uap->len < 0 || ((flags & MAP_ANON) && uap->fd != -1))
                return (EINVAL);
        size = (vm_size_t) round_page(uap->len);
            (ssize_t)uap->len < 0 || ((flags & MAP_ANON) && uap->fd != -1))
                return (EINVAL);
        size = (vm_size_t) round_page(uap->len);
@@ -261,7 +262,7 @@ mmap(p, uap, retval)
                }
        }
        error = vm_mmap(&p->p_vmspace->vm_map, &addr, size, prot, maxprot,
                }
        }
        error = vm_mmap(&p->p_vmspace->vm_map, &addr, size, prot, maxprot,
-           flags, handle, (vm_offset_t)uap->pos);
+           flags, handle, pos);
        if (error == 0)
                *retval = (int)addr;
        return (error);
        if (error == 0)
                *retval = (int)addr;
        return (error);