memblock: Kill sentinel entries at the end of static region arrays
authorTejun Heo <tj@kernel.org>
Thu, 8 Dec 2011 18:22:07 +0000 (10:22 -0800)
committerTejun Heo <tj@kernel.org>
Thu, 8 Dec 2011 18:22:07 +0000 (10:22 -0800)
memblock no longer depends on having one more entry at the end during
addition making the sentinel entries at the end of region arrays not
too useful.  Remove the sentinels.  This eases further updates.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Yinghai Lu <yinghai@kernel.org>
include/linux/poison.h
mm/memblock.c

index 79159de0e34185327f872752032412eda5445a97..2110a81c5e2afaab47ec5cb107cf17503d731317 100644 (file)
 #define        RED_INACTIVE    0x09F911029D74E35BULL   /* when obj is inactive */
 #define        RED_ACTIVE      0xD84156C5635688C0ULL   /* when obj is active */
 
-#ifdef CONFIG_PHYS_ADDR_T_64BIT
-#define MEMBLOCK_INACTIVE      0x3a84fb0144c9e71bULL
-#else
-#define MEMBLOCK_INACTIVE      0x44c9e71bUL
-#endif
-
 #define SLUB_RED_INACTIVE      0xbb
 #define SLUB_RED_ACTIVE                0xcc
 
index 4b80f6fae0918516bbae9be8cb057b13fc9be073..e808df845bbb43b44a4c089dcd24e7958fe43593 100644 (file)
@@ -24,8 +24,8 @@ struct memblock memblock __initdata_memblock;
 
 int memblock_debug __initdata_memblock;
 int memblock_can_resize __initdata_memblock;
-static struct memblock_region memblock_memory_init_regions[INIT_MEMBLOCK_REGIONS + 1] __initdata_memblock;
-static struct memblock_region memblock_reserved_init_regions[INIT_MEMBLOCK_REGIONS + 1] __initdata_memblock;
+static struct memblock_region memblock_memory_init_regions[INIT_MEMBLOCK_REGIONS] __initdata_memblock;
+static struct memblock_region memblock_reserved_init_regions[INIT_MEMBLOCK_REGIONS] __initdata_memblock;
 
 /* inline so we don't get a warning when pr_debug is compiled out */
 static inline const char *memblock_type_name(struct memblock_type *type)
@@ -911,12 +911,6 @@ void __init memblock_analyze(void)
 {
        int i;
 
-       /* Check marker in the unused last array entry */
-       WARN_ON(memblock_memory_init_regions[INIT_MEMBLOCK_REGIONS].base
-               != MEMBLOCK_INACTIVE);
-       WARN_ON(memblock_reserved_init_regions[INIT_MEMBLOCK_REGIONS].base
-               != MEMBLOCK_INACTIVE);
-
        memblock.memory_size = 0;
 
        for (i = 0; i < memblock.memory.cnt; i++)
@@ -940,10 +934,6 @@ void __init memblock_init(void)
        memblock.reserved.regions       = memblock_reserved_init_regions;
        memblock.reserved.max   = INIT_MEMBLOCK_REGIONS;
 
-       /* Write a marker in the unused last array entry */
-       memblock.memory.regions[INIT_MEMBLOCK_REGIONS].base = MEMBLOCK_INACTIVE;
-       memblock.reserved.regions[INIT_MEMBLOCK_REGIONS].base = MEMBLOCK_INACTIVE;
-
        /* Create a dummy zero size MEMBLOCK which will get coalesced away later.
         * This simplifies the memblock_add() code below...
         */