Page MenuHomeFreeBSD

D14005.id49729.diff
No OneTemporary

D14005.id49729.diff

Index: sys/kern/sys_process.c
===================================================================
--- sys/kern/sys_process.c
+++ sys/kern/sys_process.c
@@ -387,8 +387,7 @@
error = EINVAL;
break;
}
- while (entry != &map->header &&
- (entry->eflags & MAP_ENTRY_IS_SUB_MAP) != 0) {
+ while ((entry->eflags & MAP_ENTRY_IS_SUB_MAP) != 0) {
entry = entry->next;
index++;
}
Index: sys/vm/vm_map.h
===================================================================
--- sys/vm/vm_map.h
+++ sys/vm/vm_map.h
@@ -146,6 +146,7 @@
#define MAP_ENTRY_GUARD 0x10000
#define MAP_ENTRY_STACK_GAP_DN 0x20000
#define MAP_ENTRY_STACK_GAP_UP 0x40000
+#define MAP_ENTRY_HEADER 0x80000
#ifdef _KERNEL
static __inline u_char
Index: sys/vm/vm_map.c
===================================================================
--- sys/vm/vm_map.c
+++ sys/vm/vm_map.c
@@ -796,6 +796,7 @@
{
map->header.next = map->header.prev = &map->header;
+ map->header.eflags = MAP_ENTRY_HEADER;
map->needs_wakeup = FALSE;
map->system_map = 0;
map->pmap = pmap;
@@ -1277,8 +1278,8 @@
if (object->ref_count > 1 || object->shadow_count != 0)
vm_object_clear_flag(object, OBJ_ONEMAPPING);
VM_OBJECT_WUNLOCK(object);
- } else if (prev_entry != &map->header &&
- (prev_entry->eflags & ~MAP_ENTRY_USER_WIRED) == protoeflags &&
+ } else if ((prev_entry->eflags & ~MAP_ENTRY_USER_WIRED) ==
+ protoeflags &&
(cow & (MAP_STACK_GROWS_DOWN | MAP_STACK_GROWS_UP)) == 0 &&
prev_entry->end == start && (prev_entry->cred == cred ||
(prev_entry->object.vm_object != NULL &&
@@ -1708,8 +1709,7 @@
return;
prev = entry->prev;
- if (prev != &map->header &&
- vm_map_mergeable_neighbors(prev, entry)) {
+ if (vm_map_mergeable_neighbors(prev, entry)) {
vm_map_entry_unlink(map, prev);
entry->start = prev->start;
entry->offset = prev->offset;
@@ -1719,8 +1719,7 @@
}
next = entry->next;
- if (next != &map->header &&
- vm_map_mergeable_neighbors(entry, next)) {
+ if (vm_map_mergeable_neighbors(entry, next)) {
vm_map_entry_unlink(map, next);
entry->end = next->end;
vm_map_entry_resize_free(map, entry);

File Metadata

Mime Type
text/plain
Expires
Sun, Dec 21, 8:35 AM (19 h, 2 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27110288
Default Alt Text
D14005.id49729.diff (2 KB)

Event Timeline