diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 21d820c429007d4264db5b5acce364d7789b4ed2..4b6bcec41c8f5efba35f866e052366350caa36a7 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -8405,11 +8405,9 @@ void __init free_area_init(unsigned long *max_zone_pfn)
 
 			/* Allocator not initialized yet */
 			pgdat = arch_alloc_nodedata(nid);
-			if (!pgdat) {
-				pr_err("Cannot allocate %zuB for node %d.\n",
-						sizeof(*pgdat), nid);
-				continue;
-			}
+			if (!pgdat)
+				panic("Cannot allocate %zuB for node %d.\n",
+				       sizeof(*pgdat), nid);
 			arch_refresh_nodedata(nid, pgdat);
 			free_area_init_memoryless_node(nid);