We get a link failure when calling copy_oldmem_page_encrypted() when the compiler fails to do constant-propagation of the sme_active() result into read_from_oldmem: fs/proc/vmcore.o: In function `read_from_oldmem.part.0': vmcore.c:(.text+0xb7): undefined reference to `copy_oldmem_page_encrypted' Adding an IS_ENABLED() check means the compiler will always know when it cannot be enabled. Fixes: 992b649a3f01 ("kdump, proc/vmcore: Enable kdumping encrypted memory with SME enabled") Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> --- There may be a better way of doing this, not sure what kinds of assumptions we want to make here. --- fs/proc/vmcore.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c index d469ce9d8c0c..92e1e520a52d 100644 --- a/fs/proc/vmcore.c +++ b/fs/proc/vmcore.c @@ -123,7 +123,9 @@ static ssize_t read_from_oldmem(char *buf, size_t count, if (pfn_is_ram(pfn) == 0) memset(buf, 0, nr_bytes); else { - if (encrypted) + if (IS_ENABLED(CONFIG_X86_64) && + IS_ENABLED(CONFIG_ARCH_HAS_MEM_ENCRYPT) && + encrypted) tmp = copy_oldmem_page_encrypted(pfn, buf, nr_bytes, offset, -- 2.18.0