diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/vm/vm_mmap.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/sys/vm/vm_mmap.c b/sys/vm/vm_mmap.c index d5b6e3c..ca86cf9 100644 --- a/sys/vm/vm_mmap.c +++ b/sys/vm/vm_mmap.c @@ -1456,15 +1456,13 @@ vm_mmap(vm_map_t map, vm_offset_t *addr, vm_size_t size, vm_prot_t prot, maxprot |= VM_PROT_EXECUTE; #endif - if (fitit) - *addr = pmap_addr_hint(object, *addr, size); - if (flags & MAP_STACK) rv = vm_map_stack(map, *addr, size, prot, maxprot, docow | MAP_STACK_GROWS_DOWN); else if (fitit) - rv = vm_map_find(map, object, foff, addr, size, TRUE, - prot, maxprot, docow); + rv = vm_map_find(map, object, foff, addr, size, + object != NULL && object->type == OBJT_DEVICE ? + VMFS_ALIGNED_SPACE : VMFS_ANY_SPACE, prot, maxprot, docow); else rv = vm_map_fixed(map, object, foff, *addr, size, prot, maxprot, docow); |