diff options
| author | Alan Cox <alc@FreeBSD.org> | 2007-09-25 06:25:06 +0000 |
|---|---|---|
| committer | Alan Cox <alc@FreeBSD.org> | 2007-09-25 06:25:06 +0000 |
| commit | 7bfda801a8efe3352862aa54dd5d22cd3c005ac3 (patch) | |
| tree | d6ef2df64ec2f1114828f2caa046592acbdfad76 /sys/vm/vm_map.c | |
| parent | 977b6507cb88cf79c02bd13f446e6b96dde499aa (diff) | |
Notes
Diffstat (limited to 'sys/vm/vm_map.c')
| -rw-r--r-- | sys/vm/vm_map.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index 905201ee46bb..cc6628b75451 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -1518,28 +1518,24 @@ vm_map_pmap_enter(vm_map_t map, vm_offset_t addr, vm_prot_t prot, start = addr + ptoa(tmpidx); p_start = p; } + } else if (p_start != NULL) { if (!are_queues_locked) { are_queues_locked = TRUE; vm_page_lock_queues(); } - if (VM_PAGE_INQUEUE1(p, PQ_CACHE)) { - if ((flags & MAP_PREFAULT_MADVISE) != 0) - vm_page_deactivate(p); - else if (p_start != NULL) { - pmap_enter_object(map->pmap, start, addr + - ptoa(tmpidx), p_start, prot); - p_start = NULL; - } - } - } else if (p_start != NULL) { pmap_enter_object(map->pmap, start, addr + ptoa(tmpidx), p_start, prot); p_start = NULL; } } - if (p_start != NULL) + if (p_start != NULL) { + if (!are_queues_locked) { + are_queues_locked = TRUE; + vm_page_lock_queues(); + } pmap_enter_object(map->pmap, start, addr + ptoa(psize), p_start, prot); + } if (are_queues_locked) vm_page_unlock_queues(); unlock_return: |
