From 82df8261c6a9523511d83ac367c7d64375ebabf4 Mon Sep 17 00:00:00 2001 From: Borislav Petkov Date: Tue, 5 Feb 2019 14:04:01 +0100 Subject: [PATCH] x86/boot: Fix randconfig build error due to MEMORY_HOTREMOVE When building randconfigs, one of the failures is: ld: arch/x86/boot/compressed/kaslr.o: in function `choose_random_location': kaslr.c:(.text+0xbf7): undefined reference to `count_immovable_mem_regions' ld: kaslr.c:(.text+0xcbe): undefined reference to `immovable_mem' make[2]: *** [arch/x86/boot/compressed/vmlinux] Error 1 because CONFIG_ACPI is not enabled in this particular .config but CONFIG_MEMORY_HOTREMOVE is and count_immovable_mem_regions() is unresolvable because it is defined in compressed/acpi.c which is the compilation unit that depends on CONFIG_ACPI. Add CONFIG_ACPI to the explicit dependencies for MEMORY_HOTREMOVE. Signed-off-by: Borislav Petkov Cc: Chao Fan Cc: x86@kernel.org Link: https://lkml.kernel.org/r/20190205131033.9564-1-bp@alien8.de --- arch/x86/boot/compressed/kaslr.c | 2 +- arch/x86/boot/compressed/misc.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/boot/compressed/kaslr.c b/arch/x86/boot/compressed/kaslr.c index a2039afe14a7..fa0332dda9f2 100644 --- a/arch/x86/boot/compressed/kaslr.c +++ b/arch/x86/boot/compressed/kaslr.c @@ -670,7 +670,7 @@ static bool process_mem_region(struct mem_vector *region, return 0; } -#ifdef CONFIG_MEMORY_HOTREMOVE +#if defined(CONFIG_MEMORY_HOTREMOVE) && defined(CONFIG_ACPI) /* * If immovable memory found, filter the intersection between * immovable memory and @region. diff --git a/arch/x86/boot/compressed/misc.h b/arch/x86/boot/compressed/misc.h index 5b8d51996cdd..fd13655e0f9b 100644 --- a/arch/x86/boot/compressed/misc.h +++ b/arch/x86/boot/compressed/misc.h @@ -129,7 +129,7 @@ acpi_physical_address get_rsdp_addr(void); static inline acpi_physical_address get_rsdp_addr(void) { return 0; } #endif -#if defined(CONFIG_RANDOMIZE_BASE) && defined(CONFIG_MEMORY_HOTREMOVE) +#if defined(CONFIG_RANDOMIZE_BASE) && defined(CONFIG_MEMORY_HOTREMOVE) && defined(CONFIG_ACPI) extern struct mem_vector immovable_mem[MAX_NUMNODES*2]; int count_immovable_mem_regions(void); #else -- 2.45.2