Re: vmlinux.lds.h: Bug report: unable to handle page fault when start the virtual machine with qemu

From: xiafukun
Date: Tue Nov 08 2022 - 02:46:48 EST


Thank you for your reply.
We tested your changes to this patch and did fix the issue. Following the
solution you provided, we recompile the kernel and successfully start the
virtual machine.

在 2022/11/8 0:00, Ard Biesheuvel 写道:
>
> That patch looks incorrect to me. Without CONFIG_SMP, the PERCPU
> sections are not instantiated, and the only copy of those variables is
> created in the ordinary .data/.bss sections
>
> Does the change below fix the issue for you?
>
> --- a/include/asm-generic/vmlinux.lds.h
> +++ b/include/asm-generic/vmlinux.lds.h
> @@ -347,6 +347,7 @@
> #define DATA_DATA \
> *(.xiptext) \
> *(DATA_MAIN) \
> + *(.data..decrypted) \
> *(.ref.data) \
> *(.data..shared_aligned) /* percpu related */ \
> MEM_KEEP(init.data*) \
> @@ -995,7 +996,6 @@
> #ifdef CONFIG_AMD_MEM_ENCRYPT
> #define PERCPU_DECRYPTED_SECTION \
> . = ALIGN(PAGE_SIZE); \
> - *(.data..decrypted) \
> *(.data..percpu..decrypted) \
> . = ALIGN(PAGE_SIZE);
> #else