memblock: replace free_bootmem_late with memblock_free_late
authorMike Rapoport <rppt@linux.vnet.ibm.com>
Tue, 30 Oct 2018 22:09:25 +0000 (15:09 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 31 Oct 2018 15:54:16 +0000 (08:54 -0700)
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>
arch/sparc/kernel/mdesc.c
arch/x86/platform/efi/quirks.c
drivers/firmware/efi/apple-properties.c
include/linux/bootmem.h
mm/nobootmem.c

index 59131e72ee789ea852339d80f057061743996b96..a41526bd91e23751db6fb024be3f9e4c29c1a0d4 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/mm.h>
 #include <linux/miscdevice.h>
 #include <linux/bootmem.h>
+#include <linux/memblock.h>
 #include <linux/export.h>
 #include <linux/refcount.h>
 
@@ -190,7 +191,7 @@ static void __init mdesc_memblock_free(struct mdesc_handle *hp)
 
        alloc_size = PAGE_ALIGN(hp->handle_size);
        start = __pa(hp);
-       free_bootmem_late(start, alloc_size);
+       memblock_free_late(start, alloc_size);
 }
 
 static struct mdesc_mem_ops memblock_mdesc_ops = {
index 669babcaf245a2929eaefc2e09a56c46e75840ae..4b70d0f5a803ff47fd16f8ab071380cb1e7de517 100644 (file)
@@ -333,7 +333,7 @@ void __init efi_reserve_boot_services(void)
 
                /*
                 * Because the following memblock_reserve() is paired
-                * with free_bootmem_late() for this region in
+                * with memblock_free_late() for this region in
                 * efi_free_boot_services(), we must be extremely
                 * careful not to reserve, and subsequently free,
                 * critical regions of memory (like the kernel image) or
@@ -364,7 +364,7 @@ void __init efi_reserve_boot_services(void)
                 * doesn't make sense as far as the firmware is
                 * concerned, but it does provide us with a way to tag
                 * those regions that must not be paired with
-                * free_bootmem_late().
+                * memblock_free_late().
                 */
                md->attribute |= EFI_MEMORY_RUNTIME;
        }
@@ -414,7 +414,7 @@ void __init efi_free_boot_services(void)
                        size -= rm_size;
                }
 
-               free_bootmem_late(start, size);
+               memblock_free_late(start, size);
        }
 
        if (!num_entries)
index 60a95719ecb867a61183bb9a8959d00cc1bf5647..2b675f788b61d8eab47e128c4d8fd8409af19d21 100644 (file)
@@ -235,7 +235,7 @@ static int __init map_properties(void)
                 */
                data->len = 0;
                memunmap(data);
-               free_bootmem_late(pa_data + sizeof(*data), data_len);
+               memblock_free_late(pa_data + sizeof(*data), data_len);
 
                return ret;
        }
index 706cf8ef6678b000cd7a4035d60a97c307703def..bcc7e2fcb6a66feea23cedcee850d2284684da5e 100644 (file)
@@ -30,8 +30,6 @@ extern unsigned long free_all_bootmem(void);
 extern void reset_node_managed_pages(pg_data_t *pgdat);
 extern void reset_all_zones_managed_pages(void);
 
-extern void free_bootmem_late(unsigned long physaddr, unsigned long size);
-
 /* We are using top down, so it is safe to use 0 here */
 #define BOOTMEM_LOW_LIMIT 0
 
index 85e1822ce918fa5f8ce5f4b788b8ee7754d4e7f4..ee0f7fc37fd1298084a4b85df8a6c25296bb2560 100644 (file)
@@ -33,30 +33,6 @@ unsigned long min_low_pfn;
 unsigned long max_pfn;
 unsigned long long max_possible_pfn;
 
-/**
- * free_bootmem_late - free bootmem pages directly to page allocator
- * @addr: starting address of the range
- * @size: size of the range in bytes
- *
- * This is only useful when the bootmem allocator has already been torn
- * down, but we are still initializing the system.  Pages are given directly
- * to the page allocator, no bootmem metadata is updated because it is gone.
- */
-void __init free_bootmem_late(unsigned long addr, unsigned long size)
-{
-       unsigned long cursor, end;
-
-       kmemleak_free_part_phys(addr, size);
-
-       cursor = PFN_UP(addr);
-       end = PFN_DOWN(addr + size);
-
-       for (; cursor < end; cursor++) {
-               __free_pages_bootmem(pfn_to_page(cursor), cursor, 0);
-               totalram_pages++;
-       }
-}
-
 static void __init __free_pages_memory(unsigned long start, unsigned long end)
 {
        int order;