diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2023-07-25 18:48:57 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2023-08-12 06:28:13 +0000 |
commit | 9d7ea6cff7a7edc0f3d4fa8d54e6345ee027e754 (patch) | |
tree | b91375d43a31851c8cc9c8d8aa591769b91bc7de | |
parent | 55be6be12cd95552a46feccb42db984c8d3cbc36 (diff) | |
download | src-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.c | 3 |
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) |