diff options
author | Alan Cox <alc@FreeBSD.org> | 2008-12-30 21:52:18 +0000 |
---|---|---|
committer | Alan Cox <alc@FreeBSD.org> | 2008-12-30 21:52:18 +0000 |
commit | 7438d60b4beddf83bdf7b27e2da7c2685f392b4e (patch) | |
tree | 63d26967f9adfc383a759bc1835d1c040af3b04e /sys/vm/vm_map.c | |
parent | e7f54c1b713a931316c1df50a75aeee76731a736 (diff) | |
download | src-7438d60b4beddf83bdf7b27e2da7c2685f392b4e.tar.gz src-7438d60b4beddf83bdf7b27e2da7c2685f392b4e.zip |
Avoid an unnecessary memory dereference in vm_map_entry_splay().
Notes
Notes:
svn path=/head/; revision=186618
Diffstat (limited to 'sys/vm/vm_map.c')
-rw-r--r-- | sys/vm/vm_map.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index bc78ec2d7fdf..055be3b1c7f6 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -737,9 +737,9 @@ vm_map_entry_splay(vm_offset_t addr, vm_map_entry_t root) rlist = root; root = y; } - } else { + } else if (addr >= root->end) { y = root->right; - if (addr < root->end || y == NULL) + if (y == NULL) break; if (addr >= y->end && y->right != NULL) { /* Rotate left and put y on llist. */ @@ -755,7 +755,8 @@ vm_map_entry_splay(vm_offset_t addr, vm_map_entry_t root) llist = root; root = y; } - } + } else + break; } /* |