On Mon, 18 Dec 2023, Huang Shijie wrote:
 diff --git a/arm64.c b/arm64.c
 index 57965c6..fc4ba64 100644
 --- a/arm64.c
 +++ b/arm64.c
 @@ -117,6 +117,28 @@ static void arm64_calc_kernel_start(void)
 	ms->kimage_end = (sp ? sp->value : 0);
 } 
Since x86 also supports VMEMMAP the same approach should work on x86.
In fact most platforms use VMMEMMAP:
cl@eng07sys-r113:~/linux$ grep VMEMMAP_ENABLE arch/*/Kconfig*
arch/arm64/Kconfig:	select SPARSEMEM_VMEMMAP_ENABLE
arch/loongarch/Kconfig:	select SPARSEMEM_VMEMMAP_ENABLE
arch/powerpc/Kconfig:	select SPARSEMEM_VMEMMAP_ENABLE
arch/riscv/Kconfig:	select SPARSEMEM_VMEMMAP_ENABLE if 64BIT
arch/s390/Kconfig:	select SPARSEMEM_VMEMMAP_ENABLE
arch/sparc/Kconfig:	select SPARSEMEM_VMEMMAP_ENABLE
arch/x86/Kconfig:	select SPARSEMEM_VMEMMAP_ENABLE if X86_64
Can the crash code be generalized so that it works on all platforms?