s390/numa: move numa_init_late() from device to arch_initcall
authorMichael Holzheu <holzheu@linux.vnet.ibm.com>
Wed, 20 Jan 2016 18:22:16 +0000 (19:22 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 26 Jan 2016 11:45:24 +0000 (12:45 +0100)
Commit 3e89e1c5ea ("hugetlb: make mm and fs code explicitly non-modular")
moves hugetlb_init() from module_init to subsys_initcall.

The hugetlb_init()->hugetlb_register_node() code accesses "node->dev.kobj"
which is initialized in numa_init_late().

Since numa_init_late() is a device_initcall which is called *after*
subsys_initcall the above mentioned patch breaks NUMA on s390.

So fix this and move numa_init_late() to arch_initcall.

Fixes: 3e89e1c5ea ("hugetlb: make mm and fs code explicitly non-modular")
Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/numa/numa.c

index 969b4ed4ed5ea05ef8928ddaf241f873c1973320..2794845061c66fe3605c0b2e97b591b6cf176d32 100644 (file)
@@ -160,7 +160,7 @@ static int __init numa_init_late(void)
                register_one_node(nid);
        return 0;
 }
-device_initcall(numa_init_late);
+arch_initcall(numa_init_late);
 
 static int __init parse_debug(char *parm)
 {