commit 5606f577a707aa4ccc391714dca815933aeba508 Author: Greg Kroah-Hartman Date: Wed Jul 18 07:56:38 2018 +0200 Linux 4.17.8 commit 27d8b7daf73827e8263ab0b740da6ebdda9f9d56 Author: Pavel Tatashin Date: Mon Jul 16 11:16:30 2018 -0400 mm: don't do zero_resv_unavail if memmap is not allocated commit d1b47a7c9efcf3c3384b70f6e3c8f1423b44d8c7 upstream. Moving zero_resv_unavail before memmap_init_zone(), caused a regression on x86-32. The cause is that we access struct pages before they are allocated when CONFIG_FLAT_NODE_MEM_MAP is used. free_area_init_nodes() zero_resv_unavail() mm_zero_struct_page(pfn_to_page(pfn)); <- struct page is not alloced free_area_init_node() if CONFIG_FLAT_NODE_MEM_MAP alloc_node_mem_map() memblock_virt_alloc_node_nopanic() <- struct page alloced here On the other hand memblock_virt_alloc_node_nopanic() zeroes all the memory that it returns, so we do not need to do zero_resv_unavail() here. Fixes: e181ae0c5db9 ("mm: zero unavailable pages before memmap init") Signed-off-by: Pavel Tatashin Tested-by: Matt Hart Acked-by: Michal Hocko Signed-off-by: Linus Torvalds Signed-off-by: Greg Kroah-Hartman