The patch titled Subject: hexagon: switch to NO_BOOTMEM has been removed from the -mm tree. Its filename was hexagon-switch-to-no_bootmem.patch This patch was dropped because it was merged into mainline or a subsystem tree ------------------------------------------------------ From: Mike Rapoport <rppt@xxxxxxxxxxxxxxxxxx> Subject: hexagon: switch to NO_BOOTMEM Patch series "switch several architectures NO_BOOTMEM". These patches perform conversion to NO_BOOTMEM of hexagon, nios2, uml and unicore32. This patch (of 7): Add registration of the system memory with memblock, eliminate bootmem initialization and convert early memory reservations from bootmem to memblock. Link: http://lkml.kernel.org/r/1533326330-31677-2-git-send-email-rppt@xxxxxxxxxxxxxxxxxx Signed-off-by: Mike Rapoport <rppt@xxxxxxxxxxxxxxxxxx> Acked-by: Richard Kuo <rkuo@xxxxxxxxxxxxxx> Cc: Guan Xuetao <gxt@xxxxxxxxxx> Cc: Ley Foon Tan <ley.foon.tan@xxxxxxxxx> Cc: Richard Weinberger <richard@xxxxxx> Cc: Rob Herring <robh@xxxxxxxxxx> Cc: Michal Hocko <mhocko@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- arch/hexagon/Kconfig | 3 +++ arch/hexagon/mm/init.c | 20 ++++++++------------ 2 files changed, 11 insertions(+), 12 deletions(-) --- a/arch/hexagon/Kconfig~hexagon-switch-to-no_bootmem +++ a/arch/hexagon/Kconfig @@ -21,6 +21,9 @@ config HEXAGON select GENERIC_IRQ_SHOW select HAVE_ARCH_KGDB select HAVE_ARCH_TRACEHOOK + select HAVE_MEMBLOCK + select ARCH_DISCARD_MEMBLOCK + select NO_BOOTMEM select NEED_SG_DMA_LENGTH select NO_IOPORT_MAP select GENERIC_IOMAP --- a/arch/hexagon/mm/init.c~hexagon-switch-to-no_bootmem +++ a/arch/hexagon/mm/init.c @@ -21,6 +21,7 @@ #include <linux/init.h> #include <linux/mm.h> #include <linux/bootmem.h> +#include <linux/memblock.h> #include <asm/atomic.h> #include <linux/highmem.h> #include <asm/tlb.h> @@ -176,7 +177,6 @@ size_t hexagon_coherent_pool_size = (siz void __init setup_arch_memory(void) { - int bootmap_size; /* XXX Todo: this probably should be cleaned up */ u32 *segtable = (u32 *) &swapper_pg_dir[0]; u32 *segtable_end; @@ -195,18 +195,22 @@ void __init setup_arch_memory(void) bootmem_lastpg = PFN_DOWN((bootmem_lastpg << PAGE_SHIFT) & ~((BIG_KERNEL_PAGE_SIZE) - 1)); + memblock_add(PHYS_OFFSET, + (bootmem_lastpg - ARCH_PFN_OFFSET) << PAGE_SHIFT); + + /* Reserve kernel text/data/bss */ + memblock_reserve(PHYS_OFFSET, + (bootmem_startpg - ARCH_PFN_OFFSET) << PAGE_SHIFT); /* * Reserve the top DMA_RESERVE bytes of RAM for DMA (uncached) * memory allocation */ - max_low_pfn = bootmem_lastpg - PFN_DOWN(DMA_RESERVED_BYTES); min_low_pfn = ARCH_PFN_OFFSET; - bootmap_size = init_bootmem_node(NODE_DATA(0), bootmem_startpg, min_low_pfn, max_low_pfn); + memblock_reserve(PFN_PHYS(max_low_pfn), DMA_RESERVED_BYTES); printk(KERN_INFO "bootmem_startpg: 0x%08lx\n", bootmem_startpg); printk(KERN_INFO "bootmem_lastpg: 0x%08lx\n", bootmem_lastpg); - printk(KERN_INFO "bootmap_size: %d\n", bootmap_size); printk(KERN_INFO "min_low_pfn: 0x%08lx\n", min_low_pfn); printk(KERN_INFO "max_low_pfn: 0x%08lx\n", max_low_pfn); @@ -257,14 +261,6 @@ void __init setup_arch_memory(void) #endif /* - * Free all the memory that wasn't taken up by the bootmap, the DMA - * reserve, or kernel itself. - */ - free_bootmem(PFN_PHYS(bootmem_startpg) + bootmap_size, - PFN_PHYS(bootmem_lastpg - bootmem_startpg) - bootmap_size - - DMA_RESERVED_BYTES); - - /* * The bootmem allocator seemingly just lives to feed memory * to the paging system */ _ Patches currently in -mm which might be from rppt@xxxxxxxxxxxxxxxxxx are mm-remove-config_no_bootmem.patch mm-remove-config_have_memblock.patch mm-remove-config_have_memblock-fix.patch mm-remove-config_have_memblock-fix-2.patch mm-remove-config_have_memblock-fix-3.patch mm-remove-bootmem-allocator-implementation.patch mm-nobootmem-remove-dead-code.patch memblock-rename-memblock_alloc_nid_try_nid-to-memblock_phys_alloc.patch memblock-remove-_virt-from-apis-returning-virtual-address.patch memblock-replace-alloc_bootmem_align-with-memblock_alloc.patch memblock-replace-alloc_bootmem_low-with-memblock_alloc_low.patch memblock-replace-__alloc_bootmem_node_nopanic-with-memblock_alloc_try_nid_nopanic.patch memblock-replace-alloc_bootmem_pages_nopanic-with-memblock_alloc_nopanic.patch memblock-replace-alloc_bootmem_low-with-memblock_alloc_low-2.patch memblock-replace-__alloc_bootmem_nopanic-with-memblock_alloc_from_nopanic.patch memblock-add-align-parameter-to-memblock_alloc_node.patch memblock-replace-alloc_bootmem_pages_node-with-memblock_alloc_node.patch memblock-replace-__alloc_bootmem_node-with-appropriate-memblock_-api.patch memblock-replace-alloc_bootmem_node-with-memblock_alloc_node.patch memblock-replace-alloc_bootmem_low_pages-with-memblock_alloc_low.patch memblock-replace-alloc_bootmem_pages-with-memblock_alloc.patch memblock-replace-__alloc_bootmem-with-memblock_alloc_from.patch memblock-replace-alloc_bootmem-with-memblock_alloc.patch mm-nobootmem-remove-bootmem-allocation-apis.patch memblock-replace-free_bootmem_node-with-memblock_free.patch memblock-replace-free_bootmem_late-with-memblock_free_late.patch memblock-rename-free_all_bootmem-to-memblock_free_all.patch memblock-rename-__free_pages_bootmem-to-memblock_free_pages.patch mm-remove-nobootmem.patch memblock-replace-bootmem_alloc_-with-memblock-variants.patch mm-remove-include-linux-bootmemh.patch docs-boot-time-mm-remove-bootmem-documentation.patch memblock-stop-using-implicit-alignement-to-smp_cache_bytes.patch memblock-warn-if-zero-alignment-was-requested.patch