MIPS: SGI-IP27: do xtalk scanning later
authorThomas Bogendoerfer <tbogendoerfer@suse.de>
Tue, 19 Feb 2019 15:57:18 +0000 (16:57 +0100)
committerPaul Burton <paul.burton@mips.com>
Tue, 19 Feb 2019 20:46:02 +0000 (12:46 -0800)
Move xtalk scanning to a later boot stage to be able using things like
kmalloc and friends.

Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Signed-off-by: Paul Burton <paul.burton@mips.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: James Hogan <jhogan@kernel.org>
Cc: linux-mips@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
arch/mips/sgi-ip27/ip27-init.c
arch/mips/sgi-ip27/ip27-xtalk.c

index 83399e5..aba985c 100644 (file)
@@ -52,8 +52,6 @@ EXPORT_SYMBOL_GPL(sn_cpu_info);
 
 extern void pcibr_setup(cnodeid_t);
 
-extern void xtalk_probe_node(cnodeid_t nid);
-
 static void per_hub_init(cnodeid_t cnode)
 {
        struct hub_data *hub = hub_data(cnode);
@@ -71,7 +69,6 @@ static void per_hub_init(cnodeid_t cnode)
        REMOTE_HUB_S(nasid, IIO_ICTO, 0xff);
 
        hub_rtc_init(cnode);
-       xtalk_probe_node(cnode);
 
 #ifdef CONFIG_REPLICATE_EXHANDLERS
        /*
index 4fe5678..ce06aaa 100644 (file)
@@ -99,7 +99,7 @@ static int xbow_probe(nasid_t nasid)
        return 0;
 }
 
-void xtalk_probe_node(cnodeid_t nid)
+static void xtalk_probe_node(cnodeid_t nid)
 {
        volatile u64            hubreg;
        nasid_t                 nasid;
@@ -133,3 +133,14 @@ void xtalk_probe_node(cnodeid_t nid)
                break;
        }
 }
+
+static int __init xtalk_init(void)
+{
+       cnodeid_t cnode;
+
+       for_each_online_node(cnode)
+               xtalk_probe_node(cnode);
+
+       return 0;
+}
+arch_initcall(xtalk_init);