mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-23 07:23:12 +02:00
x86/mm/64: Always use dynamic memory layout
Dynamic memory layout is used by KASLR and 5-level paging. CONFIG_X86_5LEVEL is going to be removed, making 5-level paging support unconditional which requires unconditional support of dynamic memory layout. Remove CONFIG_DYNAMIC_MEMORY_LAYOUT. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Signed-off-by: Ingo Molnar <mingo@kernel.org> Reviewed-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Borislav Petkov (AMD) <bp@alien8.de> Cc: Jan Kiszka <jan.kiszka@siemens.com> Cc: Kieran Bingham <kbingham@kernel.org> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Link: https://lore.kernel.org/r/20250516123306.3812286-2-kirill.shutemov@linux.intel.com
This commit is contained in:
parent
a0f3fe547e
commit
1bffe6f689
|
@ -1467,7 +1467,6 @@ config X86_PAE
|
|||
config X86_5LEVEL
|
||||
bool "Enable 5-level page tables support"
|
||||
default y
|
||||
select DYNAMIC_MEMORY_LAYOUT
|
||||
select SPARSEMEM_VMEMMAP
|
||||
depends on X86_64
|
||||
help
|
||||
|
@ -2168,17 +2167,10 @@ config PHYSICAL_ALIGN
|
|||
|
||||
Don't change this unless you know what you are doing.
|
||||
|
||||
config DYNAMIC_MEMORY_LAYOUT
|
||||
bool
|
||||
help
|
||||
This option makes base addresses of vmalloc and vmemmap as well as
|
||||
__PAGE_OFFSET movable during boot.
|
||||
|
||||
config RANDOMIZE_MEMORY
|
||||
bool "Randomize the kernel memory sections"
|
||||
depends on X86_64
|
||||
depends on RANDOMIZE_BASE
|
||||
select DYNAMIC_MEMORY_LAYOUT
|
||||
default RANDOMIZE_BASE
|
||||
help
|
||||
Randomizes the base virtual address of kernel memory sections
|
||||
|
|
|
@ -41,11 +41,7 @@
|
|||
#define __PAGE_OFFSET_BASE_L5 _AC(0xff11000000000000, UL)
|
||||
#define __PAGE_OFFSET_BASE_L4 _AC(0xffff888000000000, UL)
|
||||
|
||||
#ifdef CONFIG_DYNAMIC_MEMORY_LAYOUT
|
||||
#define __PAGE_OFFSET page_offset_base
|
||||
#else
|
||||
#define __PAGE_OFFSET __PAGE_OFFSET_BASE_L4
|
||||
#endif /* CONFIG_DYNAMIC_MEMORY_LAYOUT */
|
||||
|
||||
#define __START_KERNEL_map _AC(0xffffffff80000000, UL)
|
||||
|
||||
|
|
|
@ -128,15 +128,9 @@ extern unsigned int ptrs_per_p4d;
|
|||
#define __VMEMMAP_BASE_L4 0xffffea0000000000UL
|
||||
#define __VMEMMAP_BASE_L5 0xffd4000000000000UL
|
||||
|
||||
#ifdef CONFIG_DYNAMIC_MEMORY_LAYOUT
|
||||
# define VMALLOC_START vmalloc_base
|
||||
# define VMALLOC_SIZE_TB (pgtable_l5_enabled() ? VMALLOC_SIZE_TB_L5 : VMALLOC_SIZE_TB_L4)
|
||||
# define VMEMMAP_START vmemmap_base
|
||||
#else
|
||||
# define VMALLOC_START __VMALLOC_BASE_L4
|
||||
# define VMALLOC_SIZE_TB VMALLOC_SIZE_TB_L4
|
||||
# define VMEMMAP_START __VMEMMAP_BASE_L4
|
||||
#endif /* CONFIG_DYNAMIC_MEMORY_LAYOUT */
|
||||
|
||||
#ifdef CONFIG_RANDOMIZE_MEMORY
|
||||
# define DIRECT_MAP_PHYSMEM_END direct_map_physmem_end
|
||||
|
|
|
@ -59,14 +59,12 @@ unsigned int ptrs_per_p4d __ro_after_init = 1;
|
|||
EXPORT_SYMBOL(ptrs_per_p4d);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_DYNAMIC_MEMORY_LAYOUT
|
||||
unsigned long page_offset_base __ro_after_init = __PAGE_OFFSET_BASE_L4;
|
||||
EXPORT_SYMBOL(page_offset_base);
|
||||
unsigned long vmalloc_base __ro_after_init = __VMALLOC_BASE_L4;
|
||||
EXPORT_SYMBOL(vmalloc_base);
|
||||
unsigned long vmemmap_base __ro_after_init = __VMEMMAP_BASE_L4;
|
||||
EXPORT_SYMBOL(vmemmap_base);
|
||||
#endif
|
||||
|
||||
/* Wipe all early page tables except for the kernel symbol map */
|
||||
static void __init reset_early_page_tables(void)
|
||||
|
|
|
@ -29,11 +29,9 @@ def page_mask(level=1):
|
|||
raise Exception(f'Unknown page level: {level}')
|
||||
|
||||
|
||||
#page_offset_base in case CONFIG_DYNAMIC_MEMORY_LAYOUT is disabled
|
||||
POB_NO_DYNAMIC_MEM_LAYOUT = '0xffff888000000000'
|
||||
def _page_offset_base():
|
||||
pob_symbol = gdb.lookup_global_symbol('page_offset_base')
|
||||
pob = pob_symbol.name if pob_symbol else POB_NO_DYNAMIC_MEM_LAYOUT
|
||||
pob = pob_symbol.name
|
||||
return gdb.parse_and_eval(pob)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user