Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

memblock: replace free_bootmem_late with memblock_free_late

The free_bootmem_late and memblock_free_late do exactly the same thing:
they iterate over a range and give pages to the page allocator.

Replace calls to free_bootmem_late with calls to memblock_free_late and
remove the bootmem variant.

Link: http://lkml.kernel.org/r/1536927045-23536-25-git-send-email-rppt@linux.vnet.ibm.com
Signed-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Chris Zankel <chris@zankel.net>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Greentime Hu <green.hu@gmail.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Guan Xuetao <gxt@pku.edu.cn>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
Cc: Jonas Bonn <jonas@southpole.se>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Ley Foon Tan <lftan@altera.com>
Cc: Mark Salter <msalter@redhat.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Matt Turner <mattst88@gmail.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Michal Simek <monstr@monstr.eu>
Cc: Palmer Dabbelt <palmer@sifive.com>
Cc: Paul Burton <paul.burton@mips.com>
Cc: Richard Kuo <rkuo@codeaurora.org>
Cc: Richard Weinberger <richard@nod.at>
Cc: Rich Felker <dalias@libc.org>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Serge Semin <fancer.lancer@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Vineet Gupta <vgupta@synopsys.com>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Mike Rapoport and committed by
Linus Torvalds
53ab85eb 2013288f

+6 -31
+2 -1
arch/sparc/kernel/mdesc.c
··· 12 12 #include <linux/mm.h> 13 13 #include <linux/miscdevice.h> 14 14 #include <linux/bootmem.h> 15 + #include <linux/memblock.h> 15 16 #include <linux/export.h> 16 17 #include <linux/refcount.h> 17 18 ··· 191 190 192 191 alloc_size = PAGE_ALIGN(hp->handle_size); 193 192 start = __pa(hp); 194 - free_bootmem_late(start, alloc_size); 193 + memblock_free_late(start, alloc_size); 195 194 } 196 195 197 196 static struct mdesc_mem_ops memblock_mdesc_ops = {
+3 -3
arch/x86/platform/efi/quirks.c
··· 333 333 334 334 /* 335 335 * Because the following memblock_reserve() is paired 336 - * with free_bootmem_late() for this region in 336 + * with memblock_free_late() for this region in 337 337 * efi_free_boot_services(), we must be extremely 338 338 * careful not to reserve, and subsequently free, 339 339 * critical regions of memory (like the kernel image) or ··· 364 364 * doesn't make sense as far as the firmware is 365 365 * concerned, but it does provide us with a way to tag 366 366 * those regions that must not be paired with 367 - * free_bootmem_late(). 367 + * memblock_free_late(). 368 368 */ 369 369 md->attribute |= EFI_MEMORY_RUNTIME; 370 370 } ··· 414 414 size -= rm_size; 415 415 } 416 416 417 - free_bootmem_late(start, size); 417 + memblock_free_late(start, size); 418 418 } 419 419 420 420 if (!num_entries)
+1 -1
drivers/firmware/efi/apple-properties.c
··· 235 235 */ 236 236 data->len = 0; 237 237 memunmap(data); 238 - free_bootmem_late(pa_data + sizeof(*data), data_len); 238 + memblock_free_late(pa_data + sizeof(*data), data_len); 239 239 240 240 return ret; 241 241 }
-2
include/linux/bootmem.h
··· 30 30 extern void reset_node_managed_pages(pg_data_t *pgdat); 31 31 extern void reset_all_zones_managed_pages(void); 32 32 33 - extern void free_bootmem_late(unsigned long physaddr, unsigned long size); 34 - 35 33 /* We are using top down, so it is safe to use 0 here */ 36 34 #define BOOTMEM_LOW_LIMIT 0 37 35
-24
mm/nobootmem.c
··· 33 33 unsigned long max_pfn; 34 34 unsigned long long max_possible_pfn; 35 35 36 - /** 37 - * free_bootmem_late - free bootmem pages directly to page allocator 38 - * @addr: starting address of the range 39 - * @size: size of the range in bytes 40 - * 41 - * This is only useful when the bootmem allocator has already been torn 42 - * down, but we are still initializing the system. Pages are given directly 43 - * to the page allocator, no bootmem metadata is updated because it is gone. 44 - */ 45 - void __init free_bootmem_late(unsigned long addr, unsigned long size) 46 - { 47 - unsigned long cursor, end; 48 - 49 - kmemleak_free_part_phys(addr, size); 50 - 51 - cursor = PFN_UP(addr); 52 - end = PFN_DOWN(addr + size); 53 - 54 - for (; cursor < end; cursor++) { 55 - __free_pages_bootmem(pfn_to_page(cursor), cursor, 0); 56 - totalram_pages++; 57 - } 58 - } 59 - 60 36 static void __init __free_pages_memory(unsigned long start, unsigned long end) 61 37 { 62 38 int order;