diff --git a/arch/x86/include/asm/sections.h b/arch/x86/include/asm/sections.h index 71b32f2570ab..8ea1cfdbeabc 100644 --- a/arch/x86/include/asm/sections.h +++ b/arch/x86/include/asm/sections.h @@ -13,6 +13,4 @@ extern char __end_rodata_aligned[]; extern char __end_rodata_hpage_align[]; #endif -extern char __end_of_kernel_reserve[]; - #endif /* _ASM_X86_SECTIONS_H */ diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index bbe35bf879f5..dcbdf54fb5c1 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c @@ -836,14 +836,8 @@ dump_kernel_offset(struct notifier_block *self, unsigned long v, void *p) void __init setup_arch(char **cmdline_p) { - /* - * Reserve the memory occupied by the kernel between _text and - * __end_of_kernel_reserve symbols. Any kernel sections after the - * __end_of_kernel_reserve symbol must be explicitly reserved with a - * separate memblock_reserve() or they will be discarded. - */ memblock_reserve(__pa_symbol(_text), - (unsigned long)__end_of_kernel_reserve - (unsigned long)_text); + (unsigned long)__bss_stop - (unsigned long)_text); /* * Make sure page 0 is always reserved because on systems with diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S index e2feacf921a0..4f062d33ef73 100644 --- a/arch/x86/kernel/vmlinux.lds.S +++ b/arch/x86/kernel/vmlinux.lds.S @@ -368,14 +368,6 @@ SECTIONS __bss_stop = .; } - /* - * The memory occupied from _text to here, __end_of_kernel_reserve, is - * automatically reserved in setup_arch(). Anything after here must be - * explicitly reserved using memblock_reserve() or it will be discarded - * and treated as available memory. - */ - __end_of_kernel_reserve = .; - . = ALIGN(PAGE_SIZE); .brk : AT(ADDR(.brk) - LOAD_OFFSET) { __brk_base = .; @@ -415,6 +407,7 @@ SECTIONS STABS_DEBUG DWARF_DEBUG + /* Sections to be discarded */ DISCARDS /DISCARD/ : { *(.eh_frame)