On Tue, Aug 18, 2020 at 03:07:04PM +0800, chenzhou wrote: > diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c > index a8e34d97a894..4df18c7ea438 100644 > --- a/arch/arm64/mm/init.c > +++ b/arch/arm64/mm/init.c > @@ -147,7 +147,7 @@ static void __init reserve_crashkernel(void) > } > memblock_reserve(crash_base, crash_size); > > - if (crash_base >= CRASH_ADDR_LOW_MAX) { > + if (memstart_addr < CRASH_ADDR_LOW_MAX && crash_base >= CRASH_ADDR_LOW_MAX) { > const char *rename = "Crash kernel (low)"; Since CRASH_ADDR_LOW_MAX is defined as arm64_dma32_phys_limit and such limit is always greater than memstart_addr, this additional check doesn't do anything. See my other reply on how ZONE_DMA32 is created on arm64. -- Catalin