#include <linux/seq_file.h>
 #include <linux/memblock.h>
 
-struct memblock memblock __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;
+
+struct memblock memblock __initdata_memblock = {
+       .memory.regions         = memblock_memory_init_regions,
+       .memory.cnt             = 1,    /* empty dummy entry */
+       .memory.max             = INIT_MEMBLOCK_REGIONS,
+
+       .reserved.regions       = memblock_reserved_init_regions,
+       .reserved.cnt           = 1,    /* empty dummy entry */
+       .reserved.max           = INIT_MEMBLOCK_REGIONS,
+
+       .current_limit          = MEMBLOCK_ALLOC_ANYWHERE,
+};
 
 int memblock_debug __initdata_memblock;
 int memblock_can_resize __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)
        memblock_can_resize = 1;
 }
 
-void __init memblock_init(void)
-{
-       static int init_done __initdata = 0;
-
-       if (init_done)
-               return;
-       init_done = 1;
-
-       /* Hookup the initial arrays */
-       memblock.memory.regions = memblock_memory_init_regions;
-       memblock.memory.max             = INIT_MEMBLOCK_REGIONS;
-       memblock.reserved.regions       = memblock_reserved_init_regions;
-       memblock.reserved.max   = INIT_MEMBLOCK_REGIONS;
-
-       /* Create a dummy zero size MEMBLOCK which will get coalesced away later.
-        * This simplifies the memblock_add() code below...
-        */
-       memblock.memory.regions[0].base = 0;
-       memblock.memory.regions[0].size = 0;
-       memblock_set_region_node(&memblock.memory.regions[0], MAX_NUMNODES);
-       memblock.memory.cnt = 1;
-
-       /* Ditto. */
-       memblock.reserved.regions[0].base = 0;
-       memblock.reserved.regions[0].size = 0;
-       memblock_set_region_node(&memblock.reserved.regions[0], MAX_NUMNODES);
-       memblock.reserved.cnt = 1;
-
-       memblock.current_limit = MEMBLOCK_ALLOC_ANYWHERE;
-}
-
 static int __init early_memblock(char *p)
 {
        if (p && strstr(p, "debug"))