On 06/13/22 at 04:09pm, Zhen Lei wrote: > arm64_memblock_init() > if (!IS_ENABLED(CONFIG_ZONE_DMA/DMA32)) > reserve_crashkernel() > //initialize crashk_res when > //"crashkernel=" is correctly specified > paging_init() > map_mem() > > As shown in the above pseudo code, the crashk_res.end can only be > initialized to non-zero when both "!IS_ENABLED(CONFIG_ZONE_DMA/DMA32)" > and crash_mem_map are true. So some checks in map_mem() can be adjusted > or optimized. LGTM, Acked-by: Baoquan He <bhe@xxxxxxxxxx> > > Signed-off-by: Zhen Lei <thunder.leizhen@xxxxxxxxxx> > --- > arch/arm64/mm/mmu.c | 25 +++++++++++-------------- > 1 file changed, 11 insertions(+), 14 deletions(-) > > diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c > index 626ec32873c6c36..6028a5757e4eae2 100644 > --- a/arch/arm64/mm/mmu.c > +++ b/arch/arm64/mm/mmu.c > @@ -529,12 +529,12 @@ static void __init map_mem(pgd_t *pgdp) > > #ifdef CONFIG_KEXEC_CORE > if (crash_mem_map) { > - if (IS_ENABLED(CONFIG_ZONE_DMA) || > - IS_ENABLED(CONFIG_ZONE_DMA32)) > - flags |= NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS; > - else if (crashk_res.end) > + if (crashk_res.end) > memblock_mark_nomap(crashk_res.start, > resource_size(&crashk_res)); > + else if (IS_ENABLED(CONFIG_ZONE_DMA) || > + IS_ENABLED(CONFIG_ZONE_DMA32)) > + flags |= NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS; > } > #endif > > @@ -571,16 +571,13 @@ static void __init map_mem(pgd_t *pgdp) > * through /sys/kernel/kexec_crash_size interface. > */ > #ifdef CONFIG_KEXEC_CORE > - if (crash_mem_map && > - !IS_ENABLED(CONFIG_ZONE_DMA) && !IS_ENABLED(CONFIG_ZONE_DMA32)) { > - if (crashk_res.end) { > - __map_memblock(pgdp, crashk_res.start, > - crashk_res.end + 1, > - PAGE_KERNEL, > - NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS); > - memblock_clear_nomap(crashk_res.start, > - resource_size(&crashk_res)); > - } > + if (crashk_res.end) { > + __map_memblock(pgdp, crashk_res.start, > + crashk_res.end + 1, > + PAGE_KERNEL, > + NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS); > + memblock_clear_nomap(crashk_res.start, > + resource_size(&crashk_res)); > } > #endif > } > -- > 2.25.1 >