x86-32, numa: Fix failure condition check in alloc_remap()
authorTejun Heo <tj@kernel.org>
Mon, 4 Apr 2011 22:23:47 +0000 (00:23 +0200)
committerH. Peter Anvin <hpa@zytor.com>
Thu, 7 Apr 2011 00:56:46 +0000 (17:56 -0700)
node_remap_{start|end}_vaddr[] describe [start, end) ranges; however,
alloc_remap() incorrectly failed when the current allocation + size
equaled the end but it should fail only when it goes over.  Fix it.

Signed-off-by: Tejun Heo <tj@kernel.org>
Link: http://lkml.kernel.org/r/1301955840-7246-2-git-send-email-tj@kernel.org
Acked-by: Yinghai Lu <yinghai@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
arch/x86/mm/numa_32.c

index bde3906..84aac47 100644 (file)
@@ -200,7 +200,7 @@ void *alloc_remap(int nid, unsigned long size)
 
        size = ALIGN(size, L1_CACHE_BYTES);
 
-       if (!allocation || (allocation + size) >= node_remap_end_vaddr[nid])
+       if (!allocation || (allocation + size) > node_remap_end_vaddr[nid])
                return NULL;
 
        node_remap_alloc_vaddr[nid] += size;