lib/genalloc.c: fix the end addr check in addr_in_gen_pool()
authorToshi Kikuchi <toshik@chromium.org>
Thu, 12 Feb 2015 23:02:18 +0000 (15:02 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 13 Feb 2015 02:54:14 +0000 (18:54 -0800)
Since chunk->end_addr is (chunk->start_addr + size - 1), the end address
to compare should be (start + size - 1).

Signed-off-by: Toshi Kikuchi <toshik@chromium.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
lib/genalloc.c

index 2e65d206b01c13d3ad02a57c3d0842b89c8637bd..42a95e99b754b5d3b10afb3283d3a48cea3e0e8d 100644 (file)
@@ -415,7 +415,7 @@ bool addr_in_gen_pool(struct gen_pool *pool, unsigned long start,
                        size_t size)
 {
        bool found = false;
-       unsigned long end = start + size;
+       unsigned long end = start + size - 1;
        struct gen_pool_chunk *chunk;
 
        rcu_read_lock();