mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 06:31:49 +00:00
mm: remove CONFIG_HAVE_MEMBLOCK
All architecures use memblock for early memory management. There is no need for the CONFIG_HAVE_MEMBLOCK configuration option. [rppt@linux.vnet.ibm.com: of/fdt: fixup #ifdefs] Link: http://lkml.kernel.org/r/20180919103457.GA20545@rapoport-lnx [rppt@linux.vnet.ibm.com: csky: fixups after bootmem removal] Link: http://lkml.kernel.org/r/20180926112744.GC4628@rapoport-lnx [rppt@linux.vnet.ibm.com: remove stale #else and the code it protects] Link: http://lkml.kernel.org/r/1538067825-24835-1-git-send-email-rppt@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/1536927045-23536-4-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> Tested-by: Jonathan Cameron <jonathan.cameron@huawei.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
b4a991ec58
commit
aca52c3983
@ -31,7 +31,6 @@ config ALPHA
|
|||||||
select ODD_RT_SIGACTION
|
select ODD_RT_SIGACTION
|
||||||
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
|
|
||||||
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,
|
||||||
|
@ -37,7 +37,6 @@ config ARC
|
|||||||
select HAVE_KERNEL_LZMA
|
select HAVE_KERNEL_LZMA
|
||||||
select HAVE_KPROBES
|
select HAVE_KPROBES
|
||||||
select HAVE_KRETPROBES
|
select HAVE_KRETPROBES
|
||||||
select HAVE_MEMBLOCK
|
|
||||||
select HAVE_MOD_ARCH_SPECIFIC
|
select HAVE_MOD_ARCH_SPECIFIC
|
||||||
select HAVE_OPROFILE
|
select HAVE_OPROFILE
|
||||||
select HAVE_PERF_EVENTS
|
select HAVE_PERF_EVENTS
|
||||||
|
@ -82,7 +82,6 @@ config ARM
|
|||||||
select HAVE_KERNEL_XZ
|
select HAVE_KERNEL_XZ
|
||||||
select HAVE_KPROBES if !XIP_KERNEL && !CPU_ENDIAN_BE32 && !CPU_V7M
|
select HAVE_KPROBES if !XIP_KERNEL && !CPU_ENDIAN_BE32 && !CPU_V7M
|
||||||
select HAVE_KRETPROBES if (HAVE_KPROBES)
|
select HAVE_KRETPROBES if (HAVE_KPROBES)
|
||||||
select HAVE_MEMBLOCK
|
|
||||||
select HAVE_MOD_ARCH_SPECIFIC
|
select HAVE_MOD_ARCH_SPECIFIC
|
||||||
select HAVE_NMI
|
select HAVE_NMI
|
||||||
select HAVE_OPROFILE if (HAVE_PERF_EVENTS)
|
select HAVE_OPROFILE if (HAVE_PERF_EVENTS)
|
||||||
|
@ -139,7 +139,6 @@ config ARM64
|
|||||||
select HAVE_GENERIC_DMA_COHERENT
|
select HAVE_GENERIC_DMA_COHERENT
|
||||||
select HAVE_HW_BREAKPOINT if PERF_EVENTS
|
select HAVE_HW_BREAKPOINT if PERF_EVENTS
|
||||||
select HAVE_IRQ_TIME_ACCOUNTING
|
select HAVE_IRQ_TIME_ACCOUNTING
|
||||||
select HAVE_MEMBLOCK
|
|
||||||
select HAVE_MEMBLOCK_NODE_MAP if NUMA
|
select HAVE_MEMBLOCK_NODE_MAP if NUMA
|
||||||
select HAVE_NMI
|
select HAVE_NMI
|
||||||
select HAVE_PATA_PLATFORM
|
select HAVE_PATA_PLATFORM
|
||||||
|
@ -13,7 +13,6 @@ config C6X
|
|||||||
select GENERIC_ATOMIC64
|
select GENERIC_ATOMIC64
|
||||||
select GENERIC_IRQ_SHOW
|
select GENERIC_IRQ_SHOW
|
||||||
select HAVE_ARCH_TRACEHOOK
|
select HAVE_ARCH_TRACEHOOK
|
||||||
select HAVE_MEMBLOCK
|
|
||||||
select SPARSE_IRQ
|
select SPARSE_IRQ
|
||||||
select IRQ_DOMAIN
|
select IRQ_DOMAIN
|
||||||
select OF
|
select OF
|
||||||
|
@ -36,7 +36,6 @@ config CSKY
|
|||||||
select HAVE_C_RECORDMCOUNT
|
select HAVE_C_RECORDMCOUNT
|
||||||
select HAVE_DMA_API_DEBUG
|
select HAVE_DMA_API_DEBUG
|
||||||
select HAVE_DMA_CONTIGUOUS
|
select HAVE_DMA_CONTIGUOUS
|
||||||
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 OF
|
select OF
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
#include <linux/console.h>
|
#include <linux/console.h>
|
||||||
#include <linux/memblock.h>
|
#include <linux/memblock.h>
|
||||||
#include <linux/bootmem.h>
|
|
||||||
#include <linux/initrd.h>
|
#include <linux/initrd.h>
|
||||||
#include <linux/of.h>
|
#include <linux/of.h>
|
||||||
#include <linux/of_fdt.h>
|
#include <linux/of_fdt.h>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/highmem.h>
|
#include <linux/highmem.h>
|
||||||
#include <linux/smp.h>
|
#include <linux/smp.h>
|
||||||
#include <linux/bootmem.h>
|
#include <linux/memblock.h>
|
||||||
#include <asm/fixmap.h>
|
#include <asm/fixmap.h>
|
||||||
#include <asm/tlbflush.h>
|
#include <asm/tlbflush.h>
|
||||||
#include <asm/cacheflush.h>
|
#include <asm/cacheflush.h>
|
||||||
@ -140,7 +140,7 @@ static void __init fixrange_init(unsigned long start, unsigned long end,
|
|||||||
pmd = (pmd_t *)pud;
|
pmd = (pmd_t *)pud;
|
||||||
for (; (k < PTRS_PER_PMD) && (vaddr != end); pmd++, k++) {
|
for (; (k < PTRS_PER_PMD) && (vaddr != end); pmd++, k++) {
|
||||||
if (pmd_none(*pmd)) {
|
if (pmd_none(*pmd)) {
|
||||||
pte = (pte_t *) alloc_bootmem_low_pages(PAGE_SIZE);
|
pte = (pte_t *) memblock_alloc_low(PAGE_SIZE, PAGE_SIZE);
|
||||||
set_pmd(pmd, __pmd(__pa(pte)));
|
set_pmd(pmd, __pmd(__pa(pte)));
|
||||||
BUG_ON(pte != pte_offset_kernel(pmd, 0));
|
BUG_ON(pte != pte_offset_kernel(pmd, 0));
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
#include <linux/ptrace.h>
|
#include <linux/ptrace.h>
|
||||||
#include <linux/mman.h>
|
#include <linux/mman.h>
|
||||||
#include <linux/mm.h>
|
#include <linux/mm.h>
|
||||||
#include <linux/bootmem.h>
|
|
||||||
#include <linux/highmem.h>
|
#include <linux/highmem.h>
|
||||||
#include <linux/memblock.h>
|
#include <linux/memblock.h>
|
||||||
#include <linux/swap.h>
|
#include <linux/swap.h>
|
||||||
@ -47,7 +46,7 @@ void __init mem_init(void)
|
|||||||
#endif
|
#endif
|
||||||
high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT);
|
high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT);
|
||||||
|
|
||||||
free_all_bootmem();
|
memblock_free_all();
|
||||||
|
|
||||||
#ifdef CONFIG_HIGHMEM
|
#ifdef CONFIG_HIGHMEM
|
||||||
for (tmp = highstart_pfn; tmp < highend_pfn; tmp++) {
|
for (tmp = highstart_pfn; tmp < highend_pfn; tmp++) {
|
||||||
|
@ -15,7 +15,6 @@ config H8300
|
|||||||
select OF
|
select OF
|
||||||
select OF_IRQ
|
select OF_IRQ
|
||||||
select OF_EARLY_FLATTREE
|
select OF_EARLY_FLATTREE
|
||||||
select HAVE_MEMBLOCK
|
|
||||||
select TIMER_OF
|
select TIMER_OF
|
||||||
select H8300_TMR8
|
select H8300_TMR8
|
||||||
select HAVE_KERNEL_GZIP
|
select HAVE_KERNEL_GZIP
|
||||||
|
@ -21,7 +21,6 @@ config HEXAGON
|
|||||||
select GENERIC_IRQ_SHOW
|
select GENERIC_IRQ_SHOW
|
||||||
select HAVE_ARCH_KGDB
|
select HAVE_ARCH_KGDB
|
||||||
select HAVE_ARCH_TRACEHOOK
|
select HAVE_ARCH_TRACEHOOK
|
||||||
select HAVE_MEMBLOCK
|
|
||||||
select ARCH_DISCARD_MEMBLOCK
|
select ARCH_DISCARD_MEMBLOCK
|
||||||
select NEED_SG_DMA_LENGTH
|
select NEED_SG_DMA_LENGTH
|
||||||
select NO_IOPORT_MAP
|
select NO_IOPORT_MAP
|
||||||
|
@ -26,7 +26,6 @@ config IA64
|
|||||||
select HAVE_FUNCTION_TRACER
|
select HAVE_FUNCTION_TRACER
|
||||||
select TTY
|
select TTY
|
||||||
select HAVE_ARCH_TRACEHOOK
|
select HAVE_ARCH_TRACEHOOK
|
||||||
select HAVE_MEMBLOCK
|
|
||||||
select HAVE_MEMBLOCK_NODE_MAP
|
select HAVE_MEMBLOCK_NODE_MAP
|
||||||
select HAVE_VIRT_CPU_ACCOUNTING
|
select HAVE_VIRT_CPU_ACCOUNTING
|
||||||
select ARCH_HAS_DMA_MARK_CLEAN
|
select ARCH_HAS_DMA_MARK_CLEAN
|
||||||
|
@ -27,7 +27,6 @@ config M68K
|
|||||||
select OLD_SIGSUSPEND3
|
select OLD_SIGSUSPEND3
|
||||||
select OLD_SIGACTION
|
select OLD_SIGACTION
|
||||||
select DMA_DIRECT_OPS if HAS_DMA
|
select DMA_DIRECT_OPS if HAS_DMA
|
||||||
select HAVE_MEMBLOCK
|
|
||||||
select ARCH_DISCARD_MEMBLOCK
|
select ARCH_DISCARD_MEMBLOCK
|
||||||
|
|
||||||
config CPU_BIG_ENDIAN
|
config CPU_BIG_ENDIAN
|
||||||
|
@ -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 HAVE_MEMBLOCK
|
|
||||||
select HAVE_MEMBLOCK_NODE_MAP
|
select HAVE_MEMBLOCK_NODE_MAP
|
||||||
select HAVE_OPROFILE
|
select HAVE_OPROFILE
|
||||||
select IRQ_DOMAIN
|
select IRQ_DOMAIN
|
||||||
|
@ -60,7 +60,6 @@ config MIPS
|
|||||||
select HAVE_IRQ_TIME_ACCOUNTING
|
select HAVE_IRQ_TIME_ACCOUNTING
|
||||||
select HAVE_KPROBES
|
select HAVE_KPROBES
|
||||||
select HAVE_KRETPROBES
|
select HAVE_KRETPROBES
|
||||||
select HAVE_MEMBLOCK
|
|
||||||
select HAVE_MEMBLOCK_NODE_MAP
|
select HAVE_MEMBLOCK_NODE_MAP
|
||||||
select HAVE_MOD_ARCH_SPECIFIC
|
select HAVE_MOD_ARCH_SPECIFIC
|
||||||
select HAVE_NMI
|
select HAVE_NMI
|
||||||
|
@ -29,7 +29,6 @@ config NDS32
|
|||||||
select HANDLE_DOMAIN_IRQ
|
select HANDLE_DOMAIN_IRQ
|
||||||
select HAVE_ARCH_TRACEHOOK
|
select HAVE_ARCH_TRACEHOOK
|
||||||
select HAVE_DEBUG_KMEMLEAK
|
select HAVE_DEBUG_KMEMLEAK
|
||||||
select HAVE_MEMBLOCK
|
|
||||||
select HAVE_REGS_AND_STACK_ACCESS_API
|
select HAVE_REGS_AND_STACK_ACCESS_API
|
||||||
select IRQ_DOMAIN
|
select IRQ_DOMAIN
|
||||||
select LOCKDEP_SUPPORT
|
select LOCKDEP_SUPPORT
|
||||||
|
@ -23,7 +23,6 @@ config NIOS2
|
|||||||
select SPARSE_IRQ
|
select SPARSE_IRQ
|
||||||
select USB_ARCH_HAS_HCD if USB_SUPPORT
|
select USB_ARCH_HAS_HCD if USB_SUPPORT
|
||||||
select CPU_NO_EFFICIENT_FFS
|
select CPU_NO_EFFICIENT_FFS
|
||||||
select HAVE_MEMBLOCK
|
|
||||||
select ARCH_DISCARD_MEMBLOCK
|
select ARCH_DISCARD_MEMBLOCK
|
||||||
|
|
||||||
config GENERIC_CSUM
|
config GENERIC_CSUM
|
||||||
|
@ -12,7 +12,6 @@ config OPENRISC
|
|||||||
select OF_EARLY_FLATTREE
|
select OF_EARLY_FLATTREE
|
||||||
select IRQ_DOMAIN
|
select IRQ_DOMAIN
|
||||||
select HANDLE_DOMAIN_IRQ
|
select HANDLE_DOMAIN_IRQ
|
||||||
select HAVE_MEMBLOCK
|
|
||||||
select GPIOLIB
|
select GPIOLIB
|
||||||
select HAVE_ARCH_TRACEHOOK
|
select HAVE_ARCH_TRACEHOOK
|
||||||
select SPARSE_IRQ
|
select SPARSE_IRQ
|
||||||
|
@ -15,7 +15,6 @@ config PARISC
|
|||||||
select RTC_CLASS
|
select RTC_CLASS
|
||||||
select RTC_DRV_GENERIC
|
select RTC_DRV_GENERIC
|
||||||
select INIT_ALL_POSSIBLE
|
select INIT_ALL_POSSIBLE
|
||||||
select HAVE_MEMBLOCK
|
|
||||||
select BUG
|
select BUG
|
||||||
select BUILDTIME_EXTABLE_SORT
|
select BUILDTIME_EXTABLE_SORT
|
||||||
select HAVE_PERF_EVENTS
|
select HAVE_PERF_EVENTS
|
||||||
|
@ -206,7 +206,6 @@ config PPC
|
|||||||
select HAVE_KRETPROBES
|
select HAVE_KRETPROBES
|
||||||
select HAVE_LD_DEAD_CODE_DATA_ELIMINATION
|
select HAVE_LD_DEAD_CODE_DATA_ELIMINATION
|
||||||
select HAVE_LIVEPATCH if HAVE_DYNAMIC_FTRACE_WITH_REGS
|
select HAVE_LIVEPATCH if HAVE_DYNAMIC_FTRACE_WITH_REGS
|
||||||
select HAVE_MEMBLOCK
|
|
||||||
select HAVE_MEMBLOCK_NODE_MAP
|
select HAVE_MEMBLOCK_NODE_MAP
|
||||||
select HAVE_MOD_ARCH_SPECIFIC
|
select HAVE_MOD_ARCH_SPECIFIC
|
||||||
select HAVE_NMI if PERF_EVENTS || (PPC64 && PPC_BOOK3S)
|
select HAVE_NMI if PERF_EVENTS || (PPC64 && PPC_BOOK3S)
|
||||||
|
@ -28,7 +28,6 @@ config RISCV
|
|||||||
select GENERIC_STRNLEN_USER
|
select GENERIC_STRNLEN_USER
|
||||||
select GENERIC_SMP_IDLE_THREAD
|
select GENERIC_SMP_IDLE_THREAD
|
||||||
select GENERIC_ATOMIC64 if !64BIT || !RISCV_ISA_A
|
select GENERIC_ATOMIC64 if !64BIT || !RISCV_ISA_A
|
||||||
select HAVE_MEMBLOCK
|
|
||||||
select HAVE_MEMBLOCK_NODE_MAP
|
select HAVE_MEMBLOCK_NODE_MAP
|
||||||
select HAVE_DMA_CONTIGUOUS
|
select HAVE_DMA_CONTIGUOUS
|
||||||
select HAVE_FUTEX_CMPXCHG if FUTEX
|
select HAVE_FUTEX_CMPXCHG if FUTEX
|
||||||
|
@ -163,7 +163,6 @@ config S390
|
|||||||
select HAVE_LIVEPATCH
|
select HAVE_LIVEPATCH
|
||||||
select HAVE_PERF_REGS
|
select HAVE_PERF_REGS
|
||||||
select HAVE_PERF_USER_STACK_DUMP
|
select HAVE_PERF_USER_STACK_DUMP
|
||||||
select HAVE_MEMBLOCK
|
|
||||||
select HAVE_MEMBLOCK_NODE_MAP
|
select HAVE_MEMBLOCK_NODE_MAP
|
||||||
select HAVE_MEMBLOCK_PHYS_MAP
|
select HAVE_MEMBLOCK_PHYS_MAP
|
||||||
select HAVE_MOD_ARCH_SPECIFIC
|
select HAVE_MOD_ARCH_SPECIFIC
|
||||||
|
@ -9,7 +9,6 @@ config SUPERH
|
|||||||
select CLKDEV_LOOKUP
|
select CLKDEV_LOOKUP
|
||||||
select DMA_DIRECT_OPS
|
select DMA_DIRECT_OPS
|
||||||
select HAVE_IDE if HAS_IOPORT_MAP
|
select HAVE_IDE if HAS_IOPORT_MAP
|
||||||
select HAVE_MEMBLOCK
|
|
||||||
select HAVE_MEMBLOCK_NODE_MAP
|
select HAVE_MEMBLOCK_NODE_MAP
|
||||||
select ARCH_DISCARD_MEMBLOCK
|
select ARCH_DISCARD_MEMBLOCK
|
||||||
select HAVE_OPROFILE
|
select HAVE_OPROFILE
|
||||||
|
@ -45,7 +45,6 @@ config SPARC
|
|||||||
select LOCKDEP_SMALL if LOCKDEP
|
select LOCKDEP_SMALL if LOCKDEP
|
||||||
select NEED_DMA_MAP_STATE
|
select NEED_DMA_MAP_STATE
|
||||||
select NEED_SG_DMA_LENGTH
|
select NEED_SG_DMA_LENGTH
|
||||||
select HAVE_MEMBLOCK
|
|
||||||
|
|
||||||
config SPARC32
|
config SPARC32
|
||||||
def_bool !64BIT
|
def_bool !64BIT
|
||||||
|
@ -12,7 +12,6 @@ config UML
|
|||||||
select HAVE_UID16
|
select HAVE_UID16
|
||||||
select HAVE_FUTEX_CMPXCHG if FUTEX
|
select HAVE_FUTEX_CMPXCHG if FUTEX
|
||||||
select HAVE_DEBUG_KMEMLEAK
|
select HAVE_DEBUG_KMEMLEAK
|
||||||
select HAVE_MEMBLOCK
|
|
||||||
select GENERIC_IRQ_SHOW
|
select GENERIC_IRQ_SHOW
|
||||||
select GENERIC_CPU_DEVICES
|
select GENERIC_CPU_DEVICES
|
||||||
select GENERIC_CLOCKEVENTS
|
select GENERIC_CLOCKEVENTS
|
||||||
|
@ -5,7 +5,6 @@ config UNICORE32
|
|||||||
select ARCH_MIGHT_HAVE_PC_PARPORT
|
select ARCH_MIGHT_HAVE_PC_PARPORT
|
||||||
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_GENERIC_DMA_COHERENT
|
select HAVE_GENERIC_DMA_COHERENT
|
||||||
select HAVE_KERNEL_GZIP
|
select HAVE_KERNEL_GZIP
|
||||||
select HAVE_KERNEL_BZIP2
|
select HAVE_KERNEL_BZIP2
|
||||||
|
@ -169,7 +169,6 @@ config X86
|
|||||||
select HAVE_KRETPROBES
|
select HAVE_KRETPROBES
|
||||||
select HAVE_KVM
|
select HAVE_KVM
|
||||||
select HAVE_LIVEPATCH if X86_64
|
select HAVE_LIVEPATCH if X86_64
|
||||||
select HAVE_MEMBLOCK
|
|
||||||
select HAVE_MEMBLOCK_NODE_MAP
|
select HAVE_MEMBLOCK_NODE_MAP
|
||||||
select HAVE_MIXED_BREAKPOINTS_REGS
|
select HAVE_MIXED_BREAKPOINTS_REGS
|
||||||
select HAVE_MOD_ARCH_SPECIFIC
|
select HAVE_MOD_ARCH_SPECIFIC
|
||||||
|
@ -28,7 +28,6 @@ config XTENSA
|
|||||||
select HAVE_FUTEX_CMPXCHG if !MMU
|
select HAVE_FUTEX_CMPXCHG if !MMU
|
||||||
select HAVE_HW_BREAKPOINT if PERF_EVENTS
|
select HAVE_HW_BREAKPOINT if PERF_EVENTS
|
||||||
select HAVE_IRQ_TIME_ACCOUNTING
|
select HAVE_IRQ_TIME_ACCOUNTING
|
||||||
select HAVE_MEMBLOCK
|
|
||||||
select HAVE_OPROFILE
|
select HAVE_OPROFILE
|
||||||
select HAVE_PERF_EVENTS
|
select HAVE_PERF_EVENTS
|
||||||
select HAVE_STACKPROTECTOR
|
select HAVE_STACKPROTECTOR
|
||||||
|
@ -1115,7 +1115,6 @@ int __init early_init_dt_scan_chosen(unsigned long node, const char *uname,
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_HAVE_MEMBLOCK
|
|
||||||
#ifndef MIN_MEMBLOCK_ADDR
|
#ifndef MIN_MEMBLOCK_ADDR
|
||||||
#define MIN_MEMBLOCK_ADDR __pa(PAGE_OFFSET)
|
#define MIN_MEMBLOCK_ADDR __pa(PAGE_OFFSET)
|
||||||
#endif
|
#endif
|
||||||
@ -1178,26 +1177,6 @@ int __init __weak early_init_dt_reserve_memory_arch(phys_addr_t base,
|
|||||||
return memblock_reserve(base, size);
|
return memblock_reserve(base, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
|
||||||
void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size)
|
|
||||||
{
|
|
||||||
WARN_ON(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
int __init __weak early_init_dt_mark_hotplug_memory_arch(u64 base, u64 size)
|
|
||||||
{
|
|
||||||
return -ENOSYS;
|
|
||||||
}
|
|
||||||
|
|
||||||
int __init __weak early_init_dt_reserve_memory_arch(phys_addr_t base,
|
|
||||||
phys_addr_t size, bool nomap)
|
|
||||||
{
|
|
||||||
pr_err("Reserved memory not supported, ignoring range %pa - %pa%s\n",
|
|
||||||
&base, &size, nomap ? " (nomap)" : "");
|
|
||||||
return -ENOSYS;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static void * __init early_init_dt_alloc_memory_arch(u64 size, u64 align)
|
static void * __init early_init_dt_alloc_memory_arch(u64 size, u64 align)
|
||||||
{
|
{
|
||||||
return memblock_virt_alloc(size, align);
|
return memblock_virt_alloc(size, align);
|
||||||
|
@ -20,13 +20,12 @@
|
|||||||
#include <linux/of_reserved_mem.h>
|
#include <linux/of_reserved_mem.h>
|
||||||
#include <linux/sort.h>
|
#include <linux/sort.h>
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
|
#include <linux/memblock.h>
|
||||||
|
|
||||||
#define MAX_RESERVED_REGIONS 32
|
#define MAX_RESERVED_REGIONS 32
|
||||||
static struct reserved_mem reserved_mem[MAX_RESERVED_REGIONS];
|
static struct reserved_mem reserved_mem[MAX_RESERVED_REGIONS];
|
||||||
static int reserved_mem_count;
|
static int reserved_mem_count;
|
||||||
|
|
||||||
#if defined(CONFIG_HAVE_MEMBLOCK)
|
|
||||||
#include <linux/memblock.h>
|
|
||||||
int __init __weak early_init_dt_alloc_reserved_memory_arch(phys_addr_t size,
|
int __init __weak early_init_dt_alloc_reserved_memory_arch(phys_addr_t size,
|
||||||
phys_addr_t align, phys_addr_t start, phys_addr_t end, bool nomap,
|
phys_addr_t align, phys_addr_t start, phys_addr_t end, bool nomap,
|
||||||
phys_addr_t *res_base)
|
phys_addr_t *res_base)
|
||||||
@ -54,16 +53,6 @@ int __init __weak early_init_dt_alloc_reserved_memory_arch(phys_addr_t size,
|
|||||||
return memblock_remove(base, size);
|
return memblock_remove(base, size);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
int __init __weak early_init_dt_alloc_reserved_memory_arch(phys_addr_t size,
|
|
||||||
phys_addr_t align, phys_addr_t start, phys_addr_t end, bool nomap,
|
|
||||||
phys_addr_t *res_base)
|
|
||||||
{
|
|
||||||
pr_err("Reserved memory not supported, ignoring region 0x%llx%s\n",
|
|
||||||
size, nomap ? " (nomap)" : "");
|
|
||||||
return -ENOSYS;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* res_mem_save_node() - save fdt node for second pass initialization
|
* res_mem_save_node() - save fdt node for second pass initialization
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
menuconfig ION
|
menuconfig ION
|
||||||
bool "Ion Memory Manager"
|
bool "Ion Memory Manager"
|
||||||
depends on HAVE_MEMBLOCK && HAS_DMA && MMU
|
depends on HAS_DMA && MMU
|
||||||
select GENERIC_ALLOCATOR
|
select GENERIC_ALLOCATOR
|
||||||
select DMA_SHARED_BUFFER
|
select DMA_SHARED_BUFFER
|
||||||
help
|
help
|
||||||
|
@ -141,7 +141,6 @@ config PSTORE_RAM
|
|||||||
tristate "Log panic/oops to a RAM buffer"
|
tristate "Log panic/oops to a RAM buffer"
|
||||||
depends on PSTORE
|
depends on PSTORE
|
||||||
depends on HAS_IOMEM
|
depends on HAS_IOMEM
|
||||||
depends on HAVE_MEMBLOCK
|
|
||||||
select REED_SOLOMON
|
select REED_SOLOMON
|
||||||
select REED_SOLOMON_ENC8
|
select REED_SOLOMON_ENC8
|
||||||
select REED_SOLOMON_DEC8
|
select REED_SOLOMON_DEC8
|
||||||
|
@ -132,9 +132,6 @@ extern void *__alloc_bootmem_low_node(pg_data_t *pgdat,
|
|||||||
#define alloc_bootmem_low_pages_node(pgdat, x) \
|
#define alloc_bootmem_low_pages_node(pgdat, x) \
|
||||||
__alloc_bootmem_low_node(pgdat, x, PAGE_SIZE, 0)
|
__alloc_bootmem_low_node(pgdat, x, PAGE_SIZE, 0)
|
||||||
|
|
||||||
|
|
||||||
#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
|
||||||
#define BOOTMEM_ALLOC_ANYWHERE (~(phys_addr_t)0)
|
#define BOOTMEM_ALLOC_ANYWHERE (~(phys_addr_t)0)
|
||||||
@ -234,115 +231,6 @@ static inline void __init memblock_free_late(
|
|||||||
__memblock_free_late(base, size);
|
__memblock_free_late(base, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#define BOOTMEM_ALLOC_ACCESSIBLE 0
|
|
||||||
|
|
||||||
|
|
||||||
/* Fall back to all the existing bootmem APIs */
|
|
||||||
static inline void * __init memblock_virt_alloc(
|
|
||||||
phys_addr_t size, phys_addr_t align)
|
|
||||||
{
|
|
||||||
if (!align)
|
|
||||||
align = SMP_CACHE_BYTES;
|
|
||||||
return __alloc_bootmem(size, align, BOOTMEM_LOW_LIMIT);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void * __init memblock_virt_alloc_raw(
|
|
||||||
phys_addr_t size, phys_addr_t align)
|
|
||||||
{
|
|
||||||
if (!align)
|
|
||||||
align = SMP_CACHE_BYTES;
|
|
||||||
return __alloc_bootmem_nopanic(size, align, BOOTMEM_LOW_LIMIT);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void * __init memblock_virt_alloc_nopanic(
|
|
||||||
phys_addr_t size, phys_addr_t align)
|
|
||||||
{
|
|
||||||
if (!align)
|
|
||||||
align = SMP_CACHE_BYTES;
|
|
||||||
return __alloc_bootmem_nopanic(size, align, BOOTMEM_LOW_LIMIT);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void * __init memblock_virt_alloc_low(
|
|
||||||
phys_addr_t size, phys_addr_t align)
|
|
||||||
{
|
|
||||||
if (!align)
|
|
||||||
align = SMP_CACHE_BYTES;
|
|
||||||
return __alloc_bootmem_low(size, align, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void * __init memblock_virt_alloc_low_nopanic(
|
|
||||||
phys_addr_t size, phys_addr_t align)
|
|
||||||
{
|
|
||||||
if (!align)
|
|
||||||
align = SMP_CACHE_BYTES;
|
|
||||||
return __alloc_bootmem_low_nopanic(size, align, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void * __init memblock_virt_alloc_from_nopanic(
|
|
||||||
phys_addr_t size, phys_addr_t align, phys_addr_t min_addr)
|
|
||||||
{
|
|
||||||
return __alloc_bootmem_nopanic(size, align, min_addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void * __init memblock_virt_alloc_node(
|
|
||||||
phys_addr_t size, int nid)
|
|
||||||
{
|
|
||||||
return __alloc_bootmem_node(NODE_DATA(nid), size, SMP_CACHE_BYTES,
|
|
||||||
BOOTMEM_LOW_LIMIT);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void * __init memblock_virt_alloc_node_nopanic(
|
|
||||||
phys_addr_t size, int nid)
|
|
||||||
{
|
|
||||||
return __alloc_bootmem_node_nopanic(NODE_DATA(nid), size,
|
|
||||||
SMP_CACHE_BYTES,
|
|
||||||
BOOTMEM_LOW_LIMIT);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void * __init memblock_virt_alloc_try_nid(phys_addr_t size,
|
|
||||||
phys_addr_t align, phys_addr_t min_addr, phys_addr_t max_addr, int nid)
|
|
||||||
{
|
|
||||||
return __alloc_bootmem_node_high(NODE_DATA(nid), size, align,
|
|
||||||
min_addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void * __init memblock_virt_alloc_try_nid_raw(
|
|
||||||
phys_addr_t size, phys_addr_t align,
|
|
||||||
phys_addr_t min_addr, phys_addr_t max_addr, int nid)
|
|
||||||
{
|
|
||||||
return ___alloc_bootmem_node_nopanic(NODE_DATA(nid), size, align,
|
|
||||||
min_addr, max_addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void * __init memblock_virt_alloc_try_nid_nopanic(
|
|
||||||
phys_addr_t size, phys_addr_t align,
|
|
||||||
phys_addr_t min_addr, phys_addr_t max_addr, int nid)
|
|
||||||
{
|
|
||||||
return ___alloc_bootmem_node_nopanic(NODE_DATA(nid), size, align,
|
|
||||||
min_addr, max_addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void __init memblock_free_early(
|
|
||||||
phys_addr_t base, phys_addr_t size)
|
|
||||||
{
|
|
||||||
free_bootmem(base, size);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void __init memblock_free_early_nid(
|
|
||||||
phys_addr_t base, phys_addr_t size, int nid)
|
|
||||||
{
|
|
||||||
free_bootmem_node(NODE_DATA(nid), base, size);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void __init memblock_free_late(
|
|
||||||
phys_addr_t base, phys_addr_t size)
|
|
||||||
{
|
|
||||||
free_bootmem_late(base, size);
|
|
||||||
}
|
|
||||||
#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,
|
||||||
unsigned long numentries,
|
unsigned long numentries,
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
#define _LINUX_MEMBLOCK_H
|
#define _LINUX_MEMBLOCK_H
|
||||||
#ifdef __KERNEL__
|
#ifdef __KERNEL__
|
||||||
|
|
||||||
#ifdef CONFIG_HAVE_MEMBLOCK
|
|
||||||
/*
|
/*
|
||||||
* Logical memory blocks.
|
* Logical memory blocks.
|
||||||
*
|
*
|
||||||
@ -440,12 +439,6 @@ static inline void early_memtest(phys_addr_t start, phys_addr_t end)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#else
|
|
||||||
static inline phys_addr_t memblock_alloc(phys_addr_t size, phys_addr_t align)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_HAVE_MEMBLOCK */
|
|
||||||
|
|
||||||
#endif /* __KERNEL__ */
|
#endif /* __KERNEL__ */
|
||||||
|
|
||||||
|
@ -2163,7 +2163,7 @@ extern int __meminit __early_pfn_to_nid(unsigned long pfn,
|
|||||||
struct mminit_pfnnid_cache *state);
|
struct mminit_pfnnid_cache *state);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIG_HAVE_MEMBLOCK) && !defined(CONFIG_FLAT_NODE_MEM_MAP)
|
#if !defined(CONFIG_FLAT_NODE_MEM_MAP)
|
||||||
void zero_resv_unavail(void);
|
void zero_resv_unavail(void);
|
||||||
#else
|
#else
|
||||||
static inline void zero_resv_unavail(void) {}
|
static inline void zero_resv_unavail(void) {}
|
||||||
|
@ -1292,7 +1292,7 @@ config DEBUG_KOBJECT
|
|||||||
depends on DEBUG_KERNEL
|
depends on DEBUG_KERNEL
|
||||||
help
|
help
|
||||||
If you say Y here, some extra kobject debugging messages will be sent
|
If you say Y here, some extra kobject debugging messages will be sent
|
||||||
to the syslog.
|
to the syslog.
|
||||||
|
|
||||||
config DEBUG_KOBJECT_RELEASE
|
config DEBUG_KOBJECT_RELEASE
|
||||||
bool "kobject release debugging"
|
bool "kobject release debugging"
|
||||||
@ -1980,7 +1980,6 @@ endif # RUNTIME_TESTING_MENU
|
|||||||
|
|
||||||
config MEMTEST
|
config MEMTEST
|
||||||
bool "Memtest"
|
bool "Memtest"
|
||||||
depends on HAVE_MEMBLOCK
|
|
||||||
---help---
|
---help---
|
||||||
This option adds a kernel parameter 'memtest', which allows memtest
|
This option adds a kernel parameter 'memtest', which allows memtest
|
||||||
to be set.
|
to be set.
|
||||||
|
@ -127,9 +127,6 @@ config SPARSEMEM_VMEMMAP
|
|||||||
pfn_to_page and page_to_pfn operations. This is the most
|
pfn_to_page and page_to_pfn operations. This is the most
|
||||||
efficient option when sufficient kernel resources are available.
|
efficient option when sufficient kernel resources are available.
|
||||||
|
|
||||||
config HAVE_MEMBLOCK
|
|
||||||
bool
|
|
||||||
|
|
||||||
config HAVE_MEMBLOCK_NODE_MAP
|
config HAVE_MEMBLOCK_NODE_MAP
|
||||||
bool
|
bool
|
||||||
|
|
||||||
@ -478,7 +475,7 @@ config FRONTSWAP
|
|||||||
|
|
||||||
config CMA
|
config CMA
|
||||||
bool "Contiguous Memory Allocator"
|
bool "Contiguous Memory Allocator"
|
||||||
depends on HAVE_MEMBLOCK && MMU
|
depends on MMU
|
||||||
select MIGRATION
|
select MIGRATION
|
||||||
select MEMORY_ISOLATION
|
select MEMORY_ISOLATION
|
||||||
help
|
help
|
||||||
|
@ -43,11 +43,11 @@ obj-y := filemap.o mempool.o oom_kill.o fadvise.o \
|
|||||||
|
|
||||||
obj-y += init-mm.o
|
obj-y += init-mm.o
|
||||||
obj-y += nobootmem.o
|
obj-y += nobootmem.o
|
||||||
|
obj-y += memblock.o
|
||||||
|
|
||||||
ifdef CONFIG_MMU
|
ifdef CONFIG_MMU
|
||||||
obj-$(CONFIG_ADVISE_SYSCALLS) += madvise.o
|
obj-$(CONFIG_ADVISE_SYSCALLS) += madvise.o
|
||||||
endif
|
endif
|
||||||
obj-$(CONFIG_HAVE_MEMBLOCK) += memblock.o
|
|
||||||
|
|
||||||
obj-$(CONFIG_SWAP) += page_io.o swap_state.o swapfile.o swap_slots.o
|
obj-$(CONFIG_SWAP) += page_io.o swap_state.o swapfile.o swap_slots.o
|
||||||
obj-$(CONFIG_FRONTSWAP) += frontswap.o
|
obj-$(CONFIG_FRONTSWAP) += frontswap.o
|
||||||
|
@ -23,10 +23,6 @@
|
|||||||
|
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
|
|
||||||
#ifndef CONFIG_HAVE_MEMBLOCK
|
|
||||||
#error CONFIG_HAVE_MEMBLOCK not defined
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CONFIG_NEED_MULTIPLE_NODES
|
#ifndef CONFIG_NEED_MULTIPLE_NODES
|
||||||
struct pglist_data __refdata contig_page_data;
|
struct pglist_data __refdata contig_page_data;
|
||||||
EXPORT_SYMBOL(contig_page_data);
|
EXPORT_SYMBOL(contig_page_data);
|
||||||
|
@ -6508,8 +6508,7 @@ void __init free_area_init_node(int nid, unsigned long *zones_size,
|
|||||||
free_area_init_core(pgdat);
|
free_area_init_core(pgdat);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(CONFIG_HAVE_MEMBLOCK) && !defined(CONFIG_FLAT_NODE_MEM_MAP)
|
#if !defined(CONFIG_FLAT_NODE_MEM_MAP)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Zero all valid struct pages in range [spfn, epfn), return number of struct
|
* Zero all valid struct pages in range [spfn, epfn), return number of struct
|
||||||
* pages zeroed
|
* pages zeroed
|
||||||
@ -6569,7 +6568,7 @@ void __init zero_resv_unavail(void)
|
|||||||
if (pgcnt)
|
if (pgcnt)
|
||||||
pr_info("Zeroed struct page in unavailable ranges: %lld pages", pgcnt);
|
pr_info("Zeroed struct page in unavailable ranges: %lld pages", pgcnt);
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_HAVE_MEMBLOCK && !CONFIG_FLAT_NODE_MEM_MAP */
|
#endif /* !CONFIG_FLAT_NODE_MEM_MAP */
|
||||||
|
|
||||||
#ifdef CONFIG_HAVE_MEMBLOCK_NODE_MAP
|
#ifdef CONFIG_HAVE_MEMBLOCK_NODE_MAP
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user