diff --git a/mm/memory.c b/mm/memory.c
index 5efa07fb6cdc18c9189fc94a995716744218454a..550405fc3b5e6396a1dd1fd974dde3e07a3c9d15 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -166,7 +166,7 @@ static int __init init_zero_pfn(void)
 	zero_pfn = page_to_pfn(ZERO_PAGE(0));
 	return 0;
 }
-core_initcall(init_zero_pfn);
+early_initcall(init_zero_pfn);
 
 void mm_trace_rss_stat(struct mm_struct *mm, int member, long count)
 {