diff options
author | alc <alc@FreeBSD.org> | 2008-12-30 21:52:18 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2008-12-30 21:52:18 +0000 |
commit | fa3b7c7db33a2028f30fda51026467492a6d7965 (patch) | |
tree | 63d26967f9adfc383a759bc1835d1c040af3b04e /sys/vm | |
parent | 0aba8d65eecc8015b34293503eb5ff5a6340de63 (diff) | |
download | FreeBSD-src-fa3b7c7db33a2028f30fda51026467492a6d7965.zip FreeBSD-src-fa3b7c7db33a2028f30fda51026467492a6d7965.tar.gz |
Avoid an unnecessary memory dereference in vm_map_entry_splay().
Diffstat (limited to 'sys/vm')
-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 bc78ec2..055be3b 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; } /* |