x86: make pcpu_chunk_addr_search() matching stricter
authorTejun Heo <tj@kernel.org>
Fri, 3 Jul 2009 23:10:58 +0000 (08:10 +0900)
committerTejun Heo <tj@kernel.org>
Fri, 3 Jul 2009 23:10:58 +0000 (08:10 +0900)
The @addr passed into pcpu_chunk_addr_search() is unit0 based address
and thus should be matched inside unit0 area.  Currently, when it uses
chunk size when determining whether the address falls in the first
chunk.  Addresses in unitN where N>0 shouldn't be passed in anyway, so
this doesn't cause any malfunction but fix it for consistency.

[ Impact: mostly cleanup ]

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Ingo Molnar <mingo@elte.hu>
mm/percpu.c

index b14984566f5aae5a91b83f0623ff06f7a446e253..19dd83b5cbdc3e50453bcf1066f6306a110f04f2 100644 (file)
@@ -290,7 +290,7 @@ static struct pcpu_chunk *pcpu_chunk_addr_search(void *addr)
        void *first_start = pcpu_first_chunk->vm->addr;
 
        /* is it in the first chunk? */
-       if (addr >= first_start && addr < first_start + pcpu_chunk_size) {
+       if (addr >= first_start && addr < first_start + pcpu_unit_size) {
                /* is it in the reserved area? */
                if (addr < first_start + pcpu_reserved_chunk_limit)
                        return pcpu_reserved_chunk;