On 11/11/20 at 09:27pm, chenzhou wrote: > Hi Baoquan, ... > >> #ifdef CONFIG_CRASH_DUMP > >> static int __init early_init_dt_scan_elfcorehdr(unsigned long node, > >> diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c > >> index 1c0f3e02f731..c55cee290bbb 100644 > >> --- a/arch/arm64/mm/mmu.c > >> +++ b/arch/arm64/mm/mmu.c > >> @@ -488,6 +488,10 @@ static void __init map_mem(pgd_t *pgdp) > >> */ > >> memblock_mark_nomap(kernel_start, kernel_end - kernel_start); > >> #ifdef CONFIG_KEXEC_CORE > >> + if (crashk_low_res.end) > >> + memblock_mark_nomap(crashk_low_res.start, > >> + resource_size(&crashk_low_res)); > >> + > >> if (crashk_res.end) > >> memblock_mark_nomap(crashk_res.start, > >> resource_size(&crashk_res)); > >> diff --git a/kernel/crash_core.c b/kernel/crash_core.c > >> index d39892bdb9ae..cdef7d8c91a6 100644 > >> --- a/kernel/crash_core.c > >> +++ b/kernel/crash_core.c > >> @@ -321,7 +321,7 @@ int __init parse_crashkernel_low(char *cmdline, > >> > >> int __init reserve_crashkernel_low(void) > >> { > >> -#ifdef CONFIG_X86_64 > >> +#if defined(CONFIG_X86_64) || defined(CONFIG_ARM64) > > Not very sure if a CONFIG_64BIT checking is better. > If doing like this, there may be some compiling errors for other 64-bit > kernel, such as mips. > > > >> unsigned long long base, low_base = 0, low_size = 0; > >> unsigned long low_mem_limit; > >> int ret; > >> @@ -362,12 +362,14 @@ int __init reserve_crashkernel_low(void) > >> > >> crashk_low_res.start = low_base; > >> crashk_low_res.end = low_base + low_size - 1; > >> +#ifdef CONFIG_X86_64 > >> insert_resource(&iomem_resource, &crashk_low_res); > >> +#endif > >> #endif > >> return 0; > >> } > >> > >> -#ifdef CONFIG_X86 > >> +#if defined(CONFIG_X86) || defined(CONFIG_ARM64) > > Should we make this weak default so that we can remove the ARCH config? > The same as above, some arch may not support kdump, in that case, compiling > errors occur.
OK, not sure if other people have better idea, oterwise, we can leave with it. Thanks for telling.