diff --git a/mm/sparse.c b/mm/sparse.c
index ac26eb0d73cddeaf53b20fb7a7d31f954b8bc117..893e5621c247c5a9be9f3d565f7f2c82d92ac80a 100644
--- a/mm/sparse.c
+++ b/mm/sparse.c
@@ -272,7 +272,7 @@ static void __kfree_section_memmap(struct page *memmap, unsigned long nr_pages)
  * Allocate the accumulated non-linear sections, allocate a mem_map
  * for each and record the physical to section mapping.
  */
-void sparse_init(void)
+void __init sparse_init(void)
 {
 	unsigned long pnum;
 	struct page *map;