(added Mike K.) On Wed, Sep 16, 2020 at 05:16:32PM -0700, Nick Desaulniers wrote: > On Wed, Sep 16, 2020 at 2:25 PM Nick Desaulniers > <ndesaulniers@xxxxxxxxxx> wrote: ... > Maybe this is: https://lore.kernel.org/linux-next/20200916140437.GL2142832@xxxxxxxxxx/ > ? That looks arm64 specific though. Maybe 32b ARM needs the same or a > similar fix? Oh man, this boots, total shot in the dark: The CMA change is the problem IMO and it's now removed from -mm and -next trees. > diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c > index 45f9d5ec2360..7118b98c1f5f 100644 > --- a/arch/arm/mm/init.c > +++ b/arch/arm/mm/init.c > @@ -226,9 +226,6 @@ void __init arm_memblock_init(const struct > machine_desc *mdesc) > early_init_fdt_reserve_self(); > early_init_fdt_scan_reserved_mem(); > > - /* reserve memory for DMA contiguous allocations */ > - dma_contiguous_reserve(arm_dma_limit); > - > arm_memblock_steal_permitted = false; > memblock_dump_all(); > } > @@ -248,6 +245,9 @@ void __init bootmem_init(void) > */ > sparse_init(); > > + /* reserve memory for DMA contiguous allocations */ > + dma_contiguous_reserve(arm_dma_limit); > + This might be too late for ARM because in paging_init() it calls dma_contiguous_remap() which presumes that the CMA area is already reserved. dma_contiguous_remap() might be NOP, so your fix will boot until it fails eventually :) > /* > * Now free the memory - free_area_init needs > * the sparse mem_map arrays initialized by sparse_init() -- Sincerely yours, Mike.