On Thu, Sep 01, 2022 at 08:25:54PM +0800, Baoquan He wrote: > On 09/01/22 at 10:24am, Mike Rapoport wrote: > > max_zone_phys() only handles cases when CONFIG_ZONE_DMA/DMA32 enabled, > the disabledCONFIG_ZONE_DMA/DMA32 case is not included. I can change > it like: > > static phys_addr_t __init crash_addr_low_max(void) > { > phys_addr_t low_mem_mask = U32_MAX; > phys_addr_t phys_start = memblock_start_of_DRAM(); > > if ((!IS_ENABLED(CONFIG_ZONE_DMA) && !IS_ENABLED(CONFIG_ZONE_DMA32)) || > (phys_start > U32_MAX)) > low_mem_mask = PHYS_ADDR_MAX; > > return low_mem_mast + 1; > } > > or add the disabled CONFIG_ZONE_DMA/DMA32 case into crash_addr_low_max() > as you suggested. Which one do you like better? > > static phys_addr_t __init crash_addr_low_max(void) > { > if (!IS_ENABLED(CONFIG_ZONE_DMA) && !IS_ENABLED(CONFIG_ZONE_DMA32)) > return PHYS_ADDR_MAX + 1; > > return max_zone_phys(32); > } I like the second variant better. -- Sincerely yours, Mike.