mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-06 14:05:39 +00:00
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>
This commit is contained in:
parent
2013288f72
commit
53ab85ebfd
@ -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 = {
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user