powerpc: don't use module_init for non-modular core hugetlb code
authorPaul Gortmaker <paul.gortmaker@windriver.com>
Sat, 2 May 2015 00:08:21 +0000 (20:08 -0400)
committerPaul Gortmaker <paul.gortmaker@windriver.com>
Tue, 16 Jun 2015 18:12:34 +0000 (14:12 -0400)
The hugetlbpage.o is obj-y (always built in).  It will never
be modular, so using module_init as an alias for __initcall is
somewhat misleading.

Fix this up now, so that we can relocate module_init from
init.h into module.h in the future.  If we don't do this, we'd
have to add module.h to obviously non-modular code, and that
would be a worse thing.

Note that direct use of __initcall is discouraged, vs. one
of the priority categorized subgroups.  As __initcall gets
mapped onto device_initcall, our use of arch_initcall (which
makes sense for arch code) will thus change this registration
from level 6-device to level 3-arch (i.e. slightly earlier).
However no observable impact of that small difference has
been observed during testing, or is expected.

Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: linuxppc-dev@lists.ozlabs.org
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
arch/powerpc/mm/hugetlbpage.c

index 3385e3d0506ec575f3eeebad77d2c65264a3acf3..f1e00ac9283c5757f9f9ca816d219ea6e94e4a73 100644 (file)
@@ -933,7 +933,7 @@ static int __init hugetlbpage_init(void)
        return 0;
 }
 #endif
-module_init(hugetlbpage_init);
+arch_initcall(hugetlbpage_init);
 
 void flush_dcache_icache_hugepage(struct page *page)
 {