From af54f12a5b04bfb968f15fb8b0ba09220773bdf9 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 5 Nov 2019 10:58:32 +0800 Subject: [PATCH] memblock: replace usage of __memblock_free_early() with memblock_free() mainline inclusion from mainline-v5.0-rc1 commit 4d72868c8f7c293fc8408a54db4e0a12dc031152 category: bugfix bugzilla: 23287 CVE: NA ------------------------------------------------- __memblock_free_early() is only used by the convenience wrappers, so essentially we wrap a call to memblock_free() twice. Replace calls of __memblock_free_early() with calls to memblock_free() and drop the former. Link: http://lkml.kernel.org/r/20181125102940.GE28634@rapoport-lnx Signed-off-by: Mike Rapoport Reviewed-by: Andrew Morton Cc: Wentao Wang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Chenwandun Reviewed-by: Kefeng Wang Signed-off-by: Yang Yingliang --- include/linux/bootmem.h | 5 +++-- include/linux/memblock.h | 1 - mm/memblock.c | 22 ++++++++-------------- 3 files changed, 11 insertions(+), 17 deletions(-) diff --git a/include/linux/bootmem.h b/include/linux/bootmem.h index 42515195d7d8..043320e48fe2 100644 --- a/include/linux/bootmem.h +++ b/include/linux/bootmem.h @@ -9,6 +9,7 @@ #include #include #include +#include /* * simple boot-time physical memory area allocator. @@ -251,13 +252,13 @@ static inline void * __init memblock_virt_alloc_node_nopanic( static inline void __init memblock_free_early( phys_addr_t base, phys_addr_t size) { - __memblock_free_early(base, size); + memblock_free(base, size); } static inline void __init memblock_free_early_nid( phys_addr_t base, phys_addr_t size, int nid) { - __memblock_free_early(base, size); + memblock_free(base, size); } static inline void __init memblock_free_late( diff --git a/include/linux/memblock.h b/include/linux/memblock.h index 5785b86a72f4..f2bf6eaaea01 100644 --- a/include/linux/memblock.h +++ b/include/linux/memblock.h @@ -138,7 +138,6 @@ void __next_mem_range_rev(u64 *idx, int nid, enum memblock_flags flags, void __next_reserved_mem_region(u64 *idx, phys_addr_t *out_start, phys_addr_t *out_end); -void __memblock_free_early(phys_addr_t base, phys_addr_t size); void __memblock_free_late(phys_addr_t base, phys_addr_t size); /** diff --git a/mm/memblock.c b/mm/memblock.c index 8af95749cbf0..519a5cb11eed 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -792,7 +792,14 @@ int __init_memblock memblock_remove(phys_addr_t base, phys_addr_t size) return memblock_remove_range(&memblock.memory, base, size); } - +/** + * memblock_free - free boot memory block + * @base: phys starting address of the boot memory block + * @size: size of the boot memory block in bytes + * + * Free boot memory block previously allocated by memblock_alloc_xx() API. + * The freeing memory will not be released to the buddy allocator. + */ int __init_memblock memblock_free(phys_addr_t base, phys_addr_t size) { phys_addr_t end = base + size - 1; @@ -1585,19 +1592,6 @@ void * __init memblock_virt_alloc_try_nid( } #endif -/** - * __memblock_free_early - free boot memory block - * @base: phys starting address of the boot memory block - * @size: size of the boot memory block in bytes - * - * Free boot memory block previously allocated by memblock_virt_alloc_xx() API. - * The freeing memory will not be released to the buddy allocator. - */ -void __init __memblock_free_early(phys_addr_t base, phys_addr_t size) -{ - memblock_free(base, size); -} - /** * __memblock_free_late - free bootmem block pages directly to buddy allocator * @base: phys starting address of the boot memory block -- GitLab