summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2017-06-28 05:20:28 +0000
committerkib <kib@FreeBSD.org>2017-06-28 05:20:28 +0000
commiteb68a05ac0b7244bce89dd423945345403220149 (patch)
tree63816710f691e81b9d26588c9290804982b35c70 /sys/vm
parentdbddf865df49a518c3ec48975a59c67c6e2b0a9c (diff)
downloadFreeBSD-src-eb68a05ac0b7244bce89dd423945345403220149.zip
FreeBSD-src-eb68a05ac0b7244bce89dd423945345403220149.tar.gz
MFC r320202:
Call pmap_copy() only for map entries which have the backing object instantiated. Approved by: re (delphij)
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_map.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c
index ae30a94..083f33a 100644
--- a/sys/vm/vm_map.c
+++ b/sys/vm/vm_map.c
@@ -3239,6 +3239,10 @@ vm_map_copy_entry(
fake_entry->next = curthread->td_map_def_user;
curthread->td_map_def_user = fake_entry;
}
+
+ pmap_copy(dst_map->pmap, src_map->pmap,
+ dst_entry->start, dst_entry->end - dst_entry->start,
+ src_entry->start);
} else {
dst_entry->object.vm_object = NULL;
dst_entry->offset = 0;
@@ -3248,9 +3252,6 @@ vm_map_copy_entry(
*fork_charge += size;
}
}
-
- pmap_copy(dst_map->pmap, src_map->pmap, dst_entry->start,
- dst_entry->end - dst_entry->start, src_entry->start);
} else {
/*
* We don't want to make writeable wired pages copy-on-write.
OpenPOWER on IntegriCloud