deferred_init_memmap() uses for_each_mem_pfn_range() which (in x86) uses memblocks. Because of CONFIG_ARCH_DISCARD_MEMBLOCK, the memblock infos have already been freed to page allocator (in free_low_memory_core_early()), which happens before deferred_init_memmap().
Maybe the fix is not to allow DISCARD_MEMBLOCK in deferred case, or discard memblock infos later. Thanks, Mika -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/