Commit b4a991ec authored by Mike Rapoport's avatar Mike Rapoport Committed by Linus Torvalds

mm: remove CONFIG_NO_BOOTMEM

All achitectures select NO_BOOTMEM which essentially becomes 'Y' for any
kernel configuration and therefore it can be removed.

[alexander.h.duyck@linux.intel.com: remove now defunct NO_BOOTMEM from depends list for deferred init]
  Link: http://lkml.kernel.org/r/20180925201814.3576.15105.stgit@localhost.localdomain
Link: http://lkml.kernel.org/r/1536927045-23536-3-git-send-email-rppt@linux.vnet.ibm.comSigned-off-by: default avatarMike Rapoport <rppt@linux.vnet.ibm.com>
Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@linux.intel.com>
Acked-by: default avatarMichal 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: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 69a60bc7
...@@ -32,7 +32,6 @@ config ALPHA ...@@ -32,7 +32,6 @@ config ALPHA
select OLD_SIGSUSPEND select OLD_SIGSUSPEND
select CPU_NO_EFFICIENT_FFS if !ALPHA_EV67 select CPU_NO_EFFICIENT_FFS if !ALPHA_EV67
select HAVE_MEMBLOCK select HAVE_MEMBLOCK
select NO_BOOTMEM
help help
The Alpha is a 64-bit general-purpose processor designed and The Alpha is a 64-bit general-purpose processor designed and
marketed by the Digital Equipment Corporation of blessed memory, marketed by the Digital Equipment Corporation of blessed memory,
......
...@@ -44,7 +44,6 @@ config ARC ...@@ -44,7 +44,6 @@ config ARC
select HANDLE_DOMAIN_IRQ select HANDLE_DOMAIN_IRQ
select IRQ_DOMAIN select IRQ_DOMAIN
select MODULES_USE_ELF_RELA select MODULES_USE_ELF_RELA
select NO_BOOTMEM
select OF select OF
select OF_EARLY_FLATTREE select OF_EARLY_FLATTREE
select OF_RESERVED_MEM select OF_RESERVED_MEM
......
...@@ -100,7 +100,6 @@ config ARM ...@@ -100,7 +100,6 @@ config ARM
select IRQ_FORCED_THREADING select IRQ_FORCED_THREADING
select MODULES_USE_ELF_REL select MODULES_USE_ELF_REL
select NEED_DMA_MAP_STATE select NEED_DMA_MAP_STATE
select NO_BOOTMEM
select OF_EARLY_FLATTREE if OF select OF_EARLY_FLATTREE if OF
select OF_RESERVED_MEM if OF select OF_RESERVED_MEM if OF
select OLD_SIGACTION select OLD_SIGACTION
......
...@@ -161,7 +161,6 @@ config ARM64 ...@@ -161,7 +161,6 @@ config ARM64
select MULTI_IRQ_HANDLER select MULTI_IRQ_HANDLER
select NEED_DMA_MAP_STATE select NEED_DMA_MAP_STATE
select NEED_SG_DMA_LENGTH select NEED_SG_DMA_LENGTH
select NO_BOOTMEM
select OF select OF
select OF_EARLY_FLATTREE select OF_EARLY_FLATTREE
select OF_RESERVED_MEM select OF_RESERVED_MEM
......
...@@ -39,7 +39,6 @@ config CSKY ...@@ -39,7 +39,6 @@ config CSKY
select HAVE_MEMBLOCK select HAVE_MEMBLOCK
select MAY_HAVE_SPARSE_IRQ select MAY_HAVE_SPARSE_IRQ
select MODULES_USE_ELF_RELA if MODULES select MODULES_USE_ELF_RELA if MODULES
select NO_BOOTMEM
select OF select OF
select OF_EARLY_FLATTREE select OF_EARLY_FLATTREE
select OF_RESERVED_MEM select OF_RESERVED_MEM
......
...@@ -16,7 +16,6 @@ config H8300 ...@@ -16,7 +16,6 @@ config H8300
select OF_IRQ select OF_IRQ
select OF_EARLY_FLATTREE select OF_EARLY_FLATTREE
select HAVE_MEMBLOCK select HAVE_MEMBLOCK
select NO_BOOTMEM
select TIMER_OF select TIMER_OF
select H8300_TMR8 select H8300_TMR8
select HAVE_KERNEL_GZIP select HAVE_KERNEL_GZIP
......
...@@ -23,7 +23,6 @@ config HEXAGON ...@@ -23,7 +23,6 @@ config HEXAGON
select HAVE_ARCH_TRACEHOOK select HAVE_ARCH_TRACEHOOK
select HAVE_MEMBLOCK select HAVE_MEMBLOCK
select ARCH_DISCARD_MEMBLOCK select ARCH_DISCARD_MEMBLOCK
select NO_BOOTMEM
select NEED_SG_DMA_LENGTH select NEED_SG_DMA_LENGTH
select NO_IOPORT_MAP select NO_IOPORT_MAP
select GENERIC_IOMAP select GENERIC_IOMAP
......
...@@ -28,7 +28,6 @@ config IA64 ...@@ -28,7 +28,6 @@ config IA64
select HAVE_ARCH_TRACEHOOK select HAVE_ARCH_TRACEHOOK
select HAVE_MEMBLOCK select HAVE_MEMBLOCK
select HAVE_MEMBLOCK_NODE_MAP select HAVE_MEMBLOCK_NODE_MAP
select NO_BOOTMEM
select HAVE_VIRT_CPU_ACCOUNTING select HAVE_VIRT_CPU_ACCOUNTING
select ARCH_HAS_DMA_MARK_CLEAN select ARCH_HAS_DMA_MARK_CLEAN
select ARCH_HAS_SG_CHAIN select ARCH_HAS_SG_CHAIN
......
...@@ -29,7 +29,6 @@ config M68K ...@@ -29,7 +29,6 @@ config M68K
select DMA_DIRECT_OPS if HAS_DMA select DMA_DIRECT_OPS if HAS_DMA
select HAVE_MEMBLOCK select HAVE_MEMBLOCK
select ARCH_DISCARD_MEMBLOCK select ARCH_DISCARD_MEMBLOCK
select NO_BOOTMEM
config CPU_BIG_ENDIAN config CPU_BIG_ENDIAN
def_bool y def_bool y
......
...@@ -28,7 +28,6 @@ config MICROBLAZE ...@@ -28,7 +28,6 @@ config MICROBLAZE
select HAVE_FTRACE_MCOUNT_RECORD select HAVE_FTRACE_MCOUNT_RECORD
select HAVE_FUNCTION_GRAPH_TRACER select HAVE_FUNCTION_GRAPH_TRACER
select HAVE_FUNCTION_TRACER select HAVE_FUNCTION_TRACER
select NO_BOOTMEM
select HAVE_MEMBLOCK select HAVE_MEMBLOCK
select HAVE_MEMBLOCK_NODE_MAP select HAVE_MEMBLOCK_NODE_MAP
select HAVE_OPROFILE select HAVE_OPROFILE
......
...@@ -78,7 +78,6 @@ config MIPS ...@@ -78,7 +78,6 @@ config MIPS
select RTC_LIB select RTC_LIB
select SYSCTL_EXCEPTION_TRACE select SYSCTL_EXCEPTION_TRACE
select VIRT_TO_BUS select VIRT_TO_BUS
select NO_BOOTMEM
menu "Machine selection" menu "Machine selection"
......
...@@ -36,7 +36,6 @@ config NDS32 ...@@ -36,7 +36,6 @@ config NDS32
select MODULES_USE_ELF_RELA select MODULES_USE_ELF_RELA
select OF select OF
select OF_EARLY_FLATTREE select OF_EARLY_FLATTREE
select NO_BOOTMEM
select NO_IOPORT_MAP select NO_IOPORT_MAP
select RTC_LIB select RTC_LIB
select THREAD_INFO_IN_TASK select THREAD_INFO_IN_TASK
......
...@@ -25,7 +25,6 @@ config NIOS2 ...@@ -25,7 +25,6 @@ config NIOS2
select CPU_NO_EFFICIENT_FFS select CPU_NO_EFFICIENT_FFS
select HAVE_MEMBLOCK select HAVE_MEMBLOCK
select ARCH_DISCARD_MEMBLOCK select ARCH_DISCARD_MEMBLOCK
select NO_BOOTMEM
config GENERIC_CSUM config GENERIC_CSUM
def_bool y def_bool y
......
...@@ -32,7 +32,6 @@ config OPENRISC ...@@ -32,7 +32,6 @@ config OPENRISC
select HAVE_DEBUG_STACKOVERFLOW select HAVE_DEBUG_STACKOVERFLOW
select OR1K_PIC select OR1K_PIC
select CPU_NO_EFFICIENT_FFS if !OPENRISC_HAVE_INST_FF1 select CPU_NO_EFFICIENT_FFS if !OPENRISC_HAVE_INST_FF1
select NO_BOOTMEM
select ARCH_USE_QUEUED_SPINLOCKS select ARCH_USE_QUEUED_SPINLOCKS
select ARCH_USE_QUEUED_RWLOCKS select ARCH_USE_QUEUED_RWLOCKS
select OMPIC if SMP select OMPIC if SMP
......
...@@ -16,7 +16,6 @@ config PARISC ...@@ -16,7 +16,6 @@ config PARISC
select RTC_DRV_GENERIC select RTC_DRV_GENERIC
select INIT_ALL_POSSIBLE select INIT_ALL_POSSIBLE
select HAVE_MEMBLOCK select HAVE_MEMBLOCK
select NO_BOOTMEM
select BUG select BUG
select BUILDTIME_EXTABLE_SORT select BUILDTIME_EXTABLE_SORT
select HAVE_PERF_EVENTS select HAVE_PERF_EVENTS
......
...@@ -231,7 +231,6 @@ config PPC ...@@ -231,7 +231,6 @@ config PPC
select MODULES_USE_ELF_RELA select MODULES_USE_ELF_RELA
select NEED_DMA_MAP_STATE if PPC64 || NOT_COHERENT_CACHE select NEED_DMA_MAP_STATE if PPC64 || NOT_COHERENT_CACHE
select NEED_SG_DMA_LENGTH select NEED_SG_DMA_LENGTH
select NO_BOOTMEM
select OF select OF
select OF_EARLY_FLATTREE select OF_EARLY_FLATTREE
select OF_RESERVED_MEM select OF_RESERVED_MEM
......
...@@ -35,7 +35,6 @@ config RISCV ...@@ -35,7 +35,6 @@ config RISCV
select HAVE_GENERIC_DMA_COHERENT select HAVE_GENERIC_DMA_COHERENT
select HAVE_PERF_EVENTS select HAVE_PERF_EVENTS
select IRQ_DOMAIN select IRQ_DOMAIN
select NO_BOOTMEM
select RISCV_ISA_A if SMP select RISCV_ISA_A if SMP
select SPARSE_IRQ select SPARSE_IRQ
select SYSCTL_EXCEPTION_TRACE select SYSCTL_EXCEPTION_TRACE
......
...@@ -175,7 +175,6 @@ config S390 ...@@ -175,7 +175,6 @@ config S390
select HAVE_SYSCALL_TRACEPOINTS select HAVE_SYSCALL_TRACEPOINTS
select HAVE_VIRT_CPU_ACCOUNTING select HAVE_VIRT_CPU_ACCOUNTING
select MODULES_USE_ELF_RELA select MODULES_USE_ELF_RELA
select NO_BOOTMEM
select OLD_SIGACTION select OLD_SIGACTION
select OLD_SIGSUSPEND3 select OLD_SIGSUSPEND3
select SPARSE_IRQ select SPARSE_IRQ
......
...@@ -11,7 +11,6 @@ config SUPERH ...@@ -11,7 +11,6 @@ config SUPERH
select HAVE_IDE if HAS_IOPORT_MAP select HAVE_IDE if HAS_IOPORT_MAP
select HAVE_MEMBLOCK select HAVE_MEMBLOCK
select HAVE_MEMBLOCK_NODE_MAP select HAVE_MEMBLOCK_NODE_MAP
select NO_BOOTMEM
select ARCH_DISCARD_MEMBLOCK select ARCH_DISCARD_MEMBLOCK
select HAVE_OPROFILE select HAVE_OPROFILE
select HAVE_GENERIC_DMA_COHERENT select HAVE_GENERIC_DMA_COHERENT
......
...@@ -46,7 +46,6 @@ config SPARC ...@@ -46,7 +46,6 @@ config SPARC
select NEED_DMA_MAP_STATE select NEED_DMA_MAP_STATE
select NEED_SG_DMA_LENGTH select NEED_SG_DMA_LENGTH
select HAVE_MEMBLOCK select HAVE_MEMBLOCK
select NO_BOOTMEM
config SPARC32 config SPARC32
def_bool !64BIT def_bool !64BIT
......
...@@ -13,7 +13,6 @@ config UML ...@@ -13,7 +13,6 @@ config UML
select HAVE_FUTEX_CMPXCHG if FUTEX select HAVE_FUTEX_CMPXCHG if FUTEX
select HAVE_DEBUG_KMEMLEAK select HAVE_DEBUG_KMEMLEAK
select HAVE_MEMBLOCK select HAVE_MEMBLOCK
select NO_BOOTMEM
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
select GENERIC_CPU_DEVICES select GENERIC_CPU_DEVICES
select GENERIC_CLOCKEVENTS select GENERIC_CLOCKEVENTS
......
...@@ -6,7 +6,6 @@ config UNICORE32 ...@@ -6,7 +6,6 @@ config UNICORE32
select ARCH_MIGHT_HAVE_PC_SERIO select ARCH_MIGHT_HAVE_PC_SERIO
select DMA_DIRECT_OPS select DMA_DIRECT_OPS
select HAVE_MEMBLOCK select HAVE_MEMBLOCK
select NO_BOOTMEM
select HAVE_GENERIC_DMA_COHERENT select HAVE_GENERIC_DMA_COHERENT
select HAVE_KERNEL_GZIP select HAVE_KERNEL_GZIP
select HAVE_KERNEL_BZIP2 select HAVE_KERNEL_BZIP2
......
...@@ -834,9 +834,6 @@ config JAILHOUSE_GUEST ...@@ -834,9 +834,6 @@ config JAILHOUSE_GUEST
endif #HYPERVISOR_GUEST endif #HYPERVISOR_GUEST
config NO_BOOTMEM
def_bool y
source "arch/x86/Kconfig.cpu" source "arch/x86/Kconfig.cpu"
config HPET_TIMER config HPET_TIMER
......
...@@ -34,7 +34,6 @@ config XTENSA ...@@ -34,7 +34,6 @@ config XTENSA
select HAVE_STACKPROTECTOR select HAVE_STACKPROTECTOR
select IRQ_DOMAIN select IRQ_DOMAIN
select MODULES_USE_ELF_RELA select MODULES_USE_ELF_RELA
select NO_BOOTMEM
select PERF_USE_VMALLOC select PERF_USE_VMALLOC
select VIRT_TO_BUS select VIRT_TO_BUS
help help
......
...@@ -26,34 +26,6 @@ extern unsigned long max_pfn; ...@@ -26,34 +26,6 @@ extern unsigned long max_pfn;
*/ */
extern unsigned long long max_possible_pfn; extern unsigned long long max_possible_pfn;
#ifndef CONFIG_NO_BOOTMEM
/**
* struct bootmem_data - per-node information used by the bootmem allocator
* @node_min_pfn: the starting physical address of the node's memory
* @node_low_pfn: the end physical address of the directly addressable memory
* @node_bootmem_map: is a bitmap pointer - the bits represent all physical
* memory pages (including holes) on the node.
* @last_end_off: the offset within the page of the end of the last allocation;
* if 0, the page used is full
* @hint_idx: the PFN of the page used with the last allocation;
* together with using this with the @last_end_offset field,
* a test can be made to see if allocations can be merged
* with the page used for the last allocation rather than
* using up a full new page.
* @list: list entry in the linked list ordered by the memory addresses
*/
typedef struct bootmem_data {
unsigned long node_min_pfn;
unsigned long node_low_pfn;
void *node_bootmem_map;
unsigned long last_end_off;
unsigned long hint_idx;
struct list_head list;
} bootmem_data_t;
extern bootmem_data_t bootmem_node_data[];
#endif
extern unsigned long bootmem_bootmap_pages(unsigned long); extern unsigned long bootmem_bootmap_pages(unsigned long);
extern unsigned long init_bootmem_node(pg_data_t *pgdat, extern unsigned long init_bootmem_node(pg_data_t *pgdat,
...@@ -125,12 +97,8 @@ extern void *__alloc_bootmem_low_node(pg_data_t *pgdat, ...@@ -125,12 +97,8 @@ extern void *__alloc_bootmem_low_node(pg_data_t *pgdat,
unsigned long align, unsigned long align,
unsigned long goal) __malloc; unsigned long goal) __malloc;
#ifdef CONFIG_NO_BOOTMEM
/* We are using top down, so it is safe to use 0 here */ /* We are using top down, so it is safe to use 0 here */
#define BOOTMEM_LOW_LIMIT 0 #define BOOTMEM_LOW_LIMIT 0
#else
#define BOOTMEM_LOW_LIMIT __pa(MAX_DMA_ADDRESS)
#endif
#ifndef ARCH_LOW_ADDRESS_LIMIT #ifndef ARCH_LOW_ADDRESS_LIMIT
#define ARCH_LOW_ADDRESS_LIMIT 0xffffffffUL #define ARCH_LOW_ADDRESS_LIMIT 0xffffffffUL
...@@ -165,7 +133,7 @@ extern void *__alloc_bootmem_low_node(pg_data_t *pgdat, ...@@ -165,7 +133,7 @@ extern void *__alloc_bootmem_low_node(pg_data_t *pgdat,
__alloc_bootmem_low_node(pgdat, x, PAGE_SIZE, 0) __alloc_bootmem_low_node(pgdat, x, PAGE_SIZE, 0)
#if defined(CONFIG_HAVE_MEMBLOCK) && defined(CONFIG_NO_BOOTMEM) #if defined(CONFIG_HAVE_MEMBLOCK)
/* FIXME: use MEMBLOCK_ALLOC_* variants here */ /* FIXME: use MEMBLOCK_ALLOC_* variants here */
#define BOOTMEM_ALLOC_ACCESSIBLE 0 #define BOOTMEM_ALLOC_ACCESSIBLE 0
...@@ -373,7 +341,7 @@ static inline void __init memblock_free_late( ...@@ -373,7 +341,7 @@ static inline void __init memblock_free_late(
{ {
free_bootmem_late(base, size); free_bootmem_late(base, size);
} }
#endif /* defined(CONFIG_HAVE_MEMBLOCK) && defined(CONFIG_NO_BOOTMEM) */ #endif /* defined(CONFIG_HAVE_MEMBLOCK) */
extern void *alloc_large_system_hash(const char *tablename, extern void *alloc_large_system_hash(const char *tablename,
unsigned long bucketsize, unsigned long bucketsize,
......
...@@ -633,9 +633,6 @@ typedef struct pglist_data { ...@@ -633,9 +633,6 @@ typedef struct pglist_data {
struct page_ext *node_page_ext; struct page_ext *node_page_ext;
#endif #endif
#endif #endif
#ifndef CONFIG_NO_BOOTMEM
struct bootmem_data *bdata;
#endif
#if defined(CONFIG_MEMORY_HOTPLUG) || defined(CONFIG_DEFERRED_STRUCT_PAGE_INIT) #if defined(CONFIG_MEMORY_HOTPLUG) || defined(CONFIG_DEFERRED_STRUCT_PAGE_INIT)
/* /*
* Must be held any time you expect node_start_pfn, node_present_pages * Must be held any time you expect node_start_pfn, node_present_pages
...@@ -869,7 +866,7 @@ static inline int is_highmem_idx(enum zone_type idx) ...@@ -869,7 +866,7 @@ static inline int is_highmem_idx(enum zone_type idx)
} }
/** /**
* is_highmem - helper function to quickly check if a struct zone is a * is_highmem - helper function to quickly check if a struct zone is a
* highmem zone or not. This is an attempt to keep references * highmem zone or not. This is an attempt to keep references
* to ZONE_{DMA/NORMAL/HIGHMEM/etc} in general code to a minimum. * to ZONE_{DMA/NORMAL/HIGHMEM/etc} in general code to a minimum.
* @zone - pointer to struct zone variable * @zone - pointer to struct zone variable
......
...@@ -142,9 +142,6 @@ config HAVE_GENERIC_GUP ...@@ -142,9 +142,6 @@ config HAVE_GENERIC_GUP
config ARCH_DISCARD_MEMBLOCK config ARCH_DISCARD_MEMBLOCK
bool bool
config NO_BOOTMEM
bool
config MEMORY_ISOLATION config MEMORY_ISOLATION
bool bool
...@@ -634,7 +631,6 @@ config MAX_STACK_SIZE_MB ...@@ -634,7 +631,6 @@ config MAX_STACK_SIZE_MB
config DEFERRED_STRUCT_PAGE_INIT config DEFERRED_STRUCT_PAGE_INIT
bool "Defer initialisation of struct pages to kthreads" bool "Defer initialisation of struct pages to kthreads"
default n default n
depends on NO_BOOTMEM
depends on SPARSEMEM depends on SPARSEMEM
depends on !NEED_PER_CPU_KM depends on !NEED_PER_CPU_KM
depends on 64BIT depends on 64BIT
......
...@@ -42,12 +42,7 @@ obj-y := filemap.o mempool.o oom_kill.o fadvise.o \ ...@@ -42,12 +42,7 @@ obj-y := filemap.o mempool.o oom_kill.o fadvise.o \
debug.o $(mmu-y) debug.o $(mmu-y)
obj-y += init-mm.o obj-y += init-mm.o
obj-y += nobootmem.o
ifdef CONFIG_NO_BOOTMEM
obj-y += nobootmem.o
else
obj-y += bootmem.o
endif
ifdef CONFIG_MMU ifdef CONFIG_MMU
obj-$(CONFIG_ADVISE_SYSCALLS) += madvise.o obj-$(CONFIG_ADVISE_SYSCALLS) += madvise.o
......
...@@ -1318,7 +1318,6 @@ phys_addr_t __init memblock_alloc_try_nid(phys_addr_t size, phys_addr_t align, i ...@@ -1318,7 +1318,6 @@ phys_addr_t __init memblock_alloc_try_nid(phys_addr_t size, phys_addr_t align, i
return memblock_alloc_base(size, align, MEMBLOCK_ALLOC_ACCESSIBLE); return memblock_alloc_base(size, align, MEMBLOCK_ALLOC_ACCESSIBLE);
} }
#if defined(CONFIG_NO_BOOTMEM)
/** /**
* memblock_virt_alloc_internal - allocate boot memory block * memblock_virt_alloc_internal - allocate boot memory block
* @size: size of memory block to be allocated in bytes * @size: size of memory block to be allocated in bytes
...@@ -1524,7 +1523,6 @@ void * __init memblock_virt_alloc_try_nid( ...@@ -1524,7 +1523,6 @@ void * __init memblock_virt_alloc_try_nid(
__func__, (u64)size, (u64)align, nid, &min_addr, &max_addr); __func__, (u64)size, (u64)align, nid, &min_addr, &max_addr);
return NULL; return NULL;
} }
#endif
/** /**
* __memblock_free_early - free boot memory block * __memblock_free_early - free boot memory block
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment