diff --git a/arch/x86/include/asm/e820/api.h b/arch/x86/include/asm/e820/api.h index 23019a696fcd..0162581b0cae 100644 --- a/arch/x86/include/asm/e820/api.h +++ b/arch/x86/include/asm/e820/api.h @@ -23,7 +23,7 @@ extern unsigned long e820_end_of_low_ram_pfn(void); extern u64 early_reserve_e820(u64 sizet, u64 align); extern void e820__memblock_setup(void); extern void e820_reserve_setup_data(void); -extern void finish_e820_parsing(void); +extern void e820__finish_early_params(void); extern void e820_reserve_resources(void); extern void e820_reserve_resources_late(void); extern void e820__memory_setup(void); diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index 79b9401bbbea..904ddb1343f2 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c @@ -932,7 +932,12 @@ void __init e820_reserve_setup_data(void) e820_print_map("reserve setup_data"); } -void __init finish_e820_parsing(void) +/* + * Called after parse_early_param(), after early parameters (such as mem=) + * have been processed, in which case we already have an E820 table filled in + * via the parameter callback function(s), but it's not sorted and printed yet: + */ +void __init e820__finish_early_params(void) { if (userdef) { if (sanitize_e820_table(e820_table->entries, ARRAY_SIZE(e820_table->entries), &e820_table->nr_entries) < 0) diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index 7954159f0d27..a121e01d8a4d 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c @@ -1005,7 +1005,7 @@ void __init setup_arch(char **cmdline_p) /* update the e820_table_firmware too */ e820_reserve_setup_data(); - finish_e820_parsing(); + e820__finish_early_params(); if (efi_enabled(EFI_BOOT)) efi_init();