aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2023-07-25 18:48:57 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2023-08-12 06:28:13 +0000
commit9d7ea6cff7a7edc0f3d4fa8d54e6345ee027e754 (patch)
treeb91375d43a31851c8cc9c8d8aa591769b91bc7de
parent55be6be12cd95552a46feccb42db984c8d3cbc36 (diff)
downloadsrc-9d7ea6cff7a7edc0f3d4fa8d54e6345ee027e754.tar.gz
src-9d7ea6cff7a7edc0f3d4fa8d54e6345ee027e754.zip
vm_map: do not allow to merge stack gap entries
At least, offset handling is wrong for them. Reviewed by: alc, markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D41099
-rw-r--r--sys/vm/vm_map.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c
index e63fcdc7c6f1..790d81bba44b 100644
--- a/sys/vm/vm_map.c
+++ b/sys/vm/vm_map.c
@@ -2293,7 +2293,8 @@ vm_map_find_min(vm_map_t map, vm_object_t object, vm_ooffset_t offset,
* another entry.
*/
#define MAP_ENTRY_NOMERGE_MASK (MAP_ENTRY_GROWS_DOWN | MAP_ENTRY_GROWS_UP | \
- MAP_ENTRY_IN_TRANSITION | MAP_ENTRY_IS_SUB_MAP | MAP_ENTRY_VN_EXEC)
+ MAP_ENTRY_IN_TRANSITION | MAP_ENTRY_IS_SUB_MAP | MAP_ENTRY_VN_EXEC | \
+ MAP_ENTRY_STACK_GAP_UP | MAP_ENTRY_STACK_GAP_DN)
static bool
vm_map_mergeable_neighbors(vm_map_entry_t prev, vm_map_entry_t entry)