nios2: switch to NO_BOOTMEM
authorMike Rapoport <rppt@linux.vnet.ibm.com>
Fri, 26 Oct 2018 22:04:55 +0000 (15:04 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 26 Oct 2018 23:25:20 +0000 (16:25 -0700)
Remove bootmem bitmap initialization and replace reserve_bootmem() with
memblock_reserve().

Link: http://lkml.kernel.org/r/1533326330-31677-5-git-send-email-rppt@linux.vnet.ibm.com
Signed-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>
Acked-by: Ley Foon Tan <ley.foon.tan@intel.com>
Cc: Guan Xuetao <gxt@pku.edu.cn>
Cc: Richard Kuo <rkuo@codeaurora.org>
Cc: Richard Weinberger <richard@nod.at>
Cc: Rob Herring <robh@kernel.org>
Cc: Michal Hocko <mhocko@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/nios2/Kconfig
arch/nios2/kernel/prom.c
arch/nios2/kernel/setup.c

index fd29f43..2df0c57 100644 (file)
@@ -24,6 +24,8 @@ config NIOS2
        select USB_ARCH_HAS_HCD if USB_SUPPORT
        select CPU_NO_EFFICIENT_FFS
        select HAVE_MEMBLOCK
+       select ARCH_DISCARD_MEMBLOCK
+       select NO_BOOTMEM
 
 config GENERIC_CSUM
        def_bool y
index ba96a49..a6d4f75 100644 (file)
 
 #include <asm/sections.h>
 
-int __init early_init_dt_reserve_memory_arch(phys_addr_t base, phys_addr_t size,
-                                            bool nomap)
-{
-       reserve_bootmem(base, size, BOOTMEM_DEFAULT);
-       return 0;
-}
-
 void __init early_init_devtree(void *params)
 {
        __be32 *dtb = (u32 *)__dtb_start;
index 0946840..2d0011d 100644 (file)
@@ -144,10 +144,11 @@ asmlinkage void __init nios2_boot_init(unsigned r4, unsigned r5, unsigned r6,
 
 void __init setup_arch(char **cmdline_p)
 {
-       int bootmap_size;
+       int dram_start;
 
        console_verbose();
 
+       dram_start = memblock_start_of_DRAM();
        memory_size = memblock_phys_mem_size();
        memory_start = PAGE_ALIGN((unsigned long)__pa(_end));
        memory_end = (unsigned long) CONFIG_NIOS2_MEM_BASE + memory_size;
@@ -165,39 +166,11 @@ void __init setup_arch(char **cmdline_p)
        max_low_pfn = PFN_DOWN(memory_end);
        max_mapnr = max_low_pfn;
 
-       /*
-        * give all the memory to the bootmap allocator,  tell it to put the
-        * boot mem_map at the start of memory
-        */
-       pr_debug("init_bootmem_node(?,%#lx, %#x, %#lx)\n",
-               min_low_pfn, PFN_DOWN(PHYS_OFFSET), max_low_pfn);
-       bootmap_size = init_bootmem_node(NODE_DATA(0),
-                                       min_low_pfn, PFN_DOWN(PHYS_OFFSET),
-                                       max_low_pfn);
-
-       /*
-        * free the usable memory,  we have to make sure we do not free
-        * the bootmem bitmap so we then reserve it after freeing it :-)
-        */
-       pr_debug("free_bootmem(%#lx, %#lx)\n",
-               memory_start, memory_end - memory_start);
-       free_bootmem(memory_start, memory_end - memory_start);
-
-       /*
-        * Reserve the bootmem bitmap itself as well. We do this in two
-        * steps (first step was init_bootmem()) because this catches
-        * the (very unlikely) case of us accidentally initializing the
-        * bootmem allocator with an invalid RAM area.
-        *
-        * Arguments are start, size
-        */
-       pr_debug("reserve_bootmem(%#lx, %#x)\n", memory_start, bootmap_size);
-       reserve_bootmem(memory_start, bootmap_size, BOOTMEM_DEFAULT);
-
+       memblock_reserve(dram_start, memory_start - dram_start);
 #ifdef CONFIG_BLK_DEV_INITRD
        if (initrd_start) {
-               reserve_bootmem(virt_to_phys((void *)initrd_start),
-                               initrd_end - initrd_start, BOOTMEM_DEFAULT);
+               memblock_reserve(virt_to_phys((void *)initrd_start),
+                               initrd_end - initrd_start);
        }
 #endif /* CONFIG_BLK_DEV_INITRD */