The patch titled Subject: um: switch to NO_BOOTMEM has been removed from the -mm tree. Its filename was um-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: um: switch to NO_BOOTMEM Replace bootmem initialization with memblock_add and memblock_reserve calls and explicit initialization of {min,max}_low_pfn. Link: http://lkml.kernel.org/r/1533326330-31677-7-git-send-email-rppt@xxxxxxxxxxxxxxxxxx Signed-off-by: Mike Rapoport <rppt@xxxxxxxxxxxxxxxxxx> Acked-by: Richard Weinberger <richard@xxxxxx> Cc: Guan Xuetao <gxt@xxxxxxxxxx> Cc: Ley Foon Tan <ley.foon.tan@xxxxxxxxx> Cc: Richard Kuo <rkuo@xxxxxxxxxxxxxx> Cc: Rob Herring <robh@xxxxxxxxxx> Cc: Michal Hocko <mhocko@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- arch/um/Kconfig | 2 ++ arch/um/kernel/physmem.c | 20 +++++++++----------- 2 files changed, 11 insertions(+), 11 deletions(-) --- a/arch/um/Kconfig~um-switch-to-no_bootmem +++ a/arch/um/Kconfig @@ -12,6 +12,8 @@ config UML select HAVE_UID16 select HAVE_FUTEX_CMPXCHG if FUTEX select HAVE_DEBUG_KMEMLEAK + select HAVE_MEMBLOCK + select NO_BOOTMEM select GENERIC_IRQ_SHOW select GENERIC_CPU_DEVICES select GENERIC_CLOCKEVENTS --- a/arch/um/kernel/physmem.c~um-switch-to-no_bootmem +++ a/arch/um/kernel/physmem.c @@ -5,6 +5,7 @@ #include <linux/module.h> #include <linux/bootmem.h> +#include <linux/memblock.h> #include <linux/mm.h> #include <linux/pfn.h> #include <asm/page.h> @@ -80,23 +81,18 @@ void __init setup_physmem(unsigned long unsigned long len, unsigned long long highmem) { unsigned long reserve = reserve_end - start; - unsigned long pfn = PFN_UP(__pa(reserve_end)); - unsigned long delta = (len - reserve) >> PAGE_SHIFT; - unsigned long offset, bootmap_size; - long map_size; + long map_size = len - reserve; int err; - offset = reserve_end - start; - map_size = len - offset; if(map_size <= 0) { os_warn("Too few physical memory! Needed=%lu, given=%lu\n", - offset, len); + reserve, len); exit(1); } physmem_fd = create_mem_file(len + highmem); - err = os_map_memory((void *) reserve_end, physmem_fd, offset, + err = os_map_memory((void *) reserve_end, physmem_fd, reserve, map_size, 1, 1, 1); if (err < 0) { os_warn("setup_physmem - mapping %ld bytes of memory at 0x%p " @@ -113,9 +109,11 @@ void __init setup_physmem(unsigned long os_write_file(physmem_fd, __syscall_stub_start, PAGE_SIZE); os_fsync_file(physmem_fd); - bootmap_size = init_bootmem(pfn, pfn + delta); - free_bootmem(__pa(reserve_end) + bootmap_size, - len - bootmap_size - reserve); + memblock_add(__pa(start), len + highmem); + memblock_reserve(__pa(start), reserve); + + min_low_pfn = PFN_UP(__pa(reserve_end)); + max_low_pfn = min_low_pfn + (map_size >> PAGE_SHIFT); } int phys_mapping(unsigned long phys, unsigned long long *offset_out) _ 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