Re: [tip:x86/mm] kdump, proc/vmcore: Enable kdumping encrypted memory with SME enabled

From: lijiang
Date: Sun Oct 07 2018 - 23:31:08 EST


å 2018å10æ07æ 16:47, Borislav Petkov åé:
> On Sun, Oct 07, 2018 at 01:55:33PM +0800, lijiang wrote:
>> Here, it may be have a compile error.
>
> Are you sure? The configs I tried worked fine but I'm open to being
> shown configs which fail the build.
>

Yes. As previously mentioned, the correct patch is this one:

diff --git a/include/linux/crash_dump.h b/include/linux/crash_dump.h
index 3e4ba9d753c8..84d8ddcb818e 100644
--- a/include/linux/crash_dump.h
+++ b/include/linux/crash_dump.h
@@ -26,6 +26,19 @@ extern int remap_oldmem_pfn_range(struct vm_area_struct *vma,

extern ssize_t copy_oldmem_page(unsigned long, char *, size_t,
unsigned long, int);
+#if defined(CONFIG_AMD_MEM_ENCRYPT) || defined(CONFIG_X86_64)
+extern ssize_t copy_oldmem_page_encrypted(unsigned long pfn, char *buf,
+ size_t csize, unsigned long offset,
+ int userbuf);
+#else
+static inline
+ssize_t copy_oldmem_page_encrypted(unsigned long pfn, char *buf, size_t csize,
+ unsigned long offset, int userbuf)
+{
+ return 0;
+}
+#endif
+

I used the patch above to test six compile cases. All of them passed, there
was no compile error.

I'm not sure whether the kernel options or compile environment are different.
Would you like to share your kernel options(.config)? I will use your kernel
options to compile, and check whether i might also reproduce your compile error.

1. x86_64 (CONFIG_X86_64=y)
a.
CONFIG_AMD_MEM_ENCRYPT=y
CONFIG_CRASH_DUMP=y

b.
# CONFIG_AMD_MEM_ENCRYPT is not set
# CONFIG_CRASH_DUMP is not set

c.
# CONFIG_AMD_MEM_ENCRYPT is not set
CONFIG_CRASH_DUMP=y

d.
CONFIG_AMD_MEM_ENCRYPT=y
# CONFIG_CRASH_DUMP is not set

Compile command:
#make clean
#make ARCH=x86_64 -j32

2. i386 (CONFIG_X86_32=y)
a.
CONFIG_CRASH_DUMP=y

b.
# CONFIG_CRASH_DUMP is not set

Compile command:
#make clean
#make ARCH=i386 -j32

Thanks.
Lianbo