summaryrefslogtreecommitdiffstats
path: root/mm/vmalloc.c
diff options
context:
space:
mode:
authorNick Piggin2008-11-20 00:36:32 +0100
committerLinus Torvalds2008-11-20 03:49:58 +0100
commitf011c2dae6cffc50ef67d9bd937b488ba5db8913 (patch)
treed956e003a564b3881810eebe0d17fad6b74bb97c /mm/vmalloc.c
parentcpuset: update top cpuset's mems after adding a node (diff)
downloadkernel-qcow2-linux-f011c2dae6cffc50ef67d9bd937b488ba5db8913.tar.gz
kernel-qcow2-linux-f011c2dae6cffc50ef67d9bd937b488ba5db8913.tar.xz
kernel-qcow2-linux-f011c2dae6cffc50ef67d9bd937b488ba5db8913.zip
mm: vmalloc allocator off by one
Fix off by one bug in the KVA allocator that can leave gaps in the address space. Signed-off-by: Nick Piggin <npiggin@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/vmalloc.c')
-rw-r--r--mm/vmalloc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index ba6b0f5f7fac..46aab4dbf618 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -362,7 +362,7 @@ retry:
goto found;
}
- while (addr + size >= first->va_start && addr + size <= vend) {
+ while (addr + size > first->va_start && addr + size <= vend) {
addr = ALIGN(first->va_end + PAGE_SIZE, align);
n = rb_next(&first->rb_node);