}
 
 extern char *build_path_component(struct device_node *dp);
+extern void of_console_init(void);
+extern void of_fill_in_cpu_data(void);
 
-extern struct device_node * __init prom_create_node(phandle node,
-                                                   struct device_node *parent);
+extern unsigned int prom_early_allocated;
 
-extern struct device_node * __init prom_build_tree(struct device_node *parent,
-                                                  phandle node,
-                                                  struct device_node ***nextp);
 #endif /* __PROM_H */
 
 
 #include "prom.h"
 
-static unsigned int prom_early_allocated;
-
 void * __init prom_early_alloc(unsigned long size)
 {
        void *ret;
 
 extern void restore_current(void);
 
-static void __init of_console_init(void)
+void __init of_console_init(void)
 {
        char *msg = "OF stdout device is: %s\n";
        struct device_node *dp;
        printk(msg, of_console_path);
 }
 
-void __init prom_build_devicetree(void)
+void __init of_fill_in_cpu_data(void)
 {
-       struct device_node **nextp;
-
-       allnodes = prom_create_node(prom_root_node, NULL);
-       allnodes->path_component_name = "";
-       allnodes->full_name = "/";
-
-       nextp = &allnodes->allnext;
-       allnodes->child = prom_build_tree(allnodes,
-                                         prom_getchild(allnodes->node),
-                                         &nextp);
-       of_console_init();
-
-       printk("PROM: Built device tree with %u bytes of memory.\n",
-              prom_early_allocated);
 }
 
 
 #include "prom.h"
 
-static unsigned int prom_early_allocated __initdata;
-
 void * __init prom_early_alloc(unsigned long size)
 {
        unsigned long paddr = lmb_alloc(size, SMP_CACHE_BYTES);
        return NULL;
 }
 
-static void __init of_fill_in_cpu_data(void)
+void __init of_fill_in_cpu_data(void)
 {
        struct device_node *dp;
-       const char *mid_prop = get_mid_prop();
+       const char *mid_prop;
+
+       if (tlb_type == hypervisor)
+               return;
 
+       mid_prop = get_mid_prop();
        ncpus_probed = 0;
        for_each_node_by_type(dp, "cpu") {
                int cpuid = of_getintprop_default(dp, mid_prop, -1);
 char *of_console_options;
 EXPORT_SYMBOL(of_console_options);
 
-static void __init of_console_init(void)
+void __init of_console_init(void)
 {
        char *msg = "OF stdout device is: %s\n";
        struct device_node *dp;
 
        printk(msg, of_console_path);
 }
-
-void __init prom_build_devicetree(void)
-{
-       struct device_node **nextp;
-
-       allnodes = prom_create_node(prom_root_node, NULL);
-       allnodes->path_component_name = "";
-       allnodes->full_name = "/";
-
-       nextp = &allnodes->allnext;
-       allnodes->child = prom_build_tree(allnodes,
-                                         prom_getchild(allnodes->node),
-                                         &nextp);
-       of_console_init();
-
-       printk("PROM: Built device tree with %u bytes of memory.\n",
-              prom_early_allocated);
-
-       if (tlb_type != hypervisor)
-               of_fill_in_cpu_data();
-}
 
        return buf;
 }
 
-struct device_node * __init prom_create_node(phandle node,
-                                            struct device_node *parent)
+static struct device_node * __init prom_create_node(phandle node,
+                                                   struct device_node *parent)
 {
        struct device_node *dp;
 
        return n;
 }
 
-struct device_node * __init prom_build_tree(struct device_node *parent,
-                                           phandle node,
-                                           struct device_node ***nextp)
+static struct device_node * __init prom_build_tree(struct device_node *parent,
+                                                  phandle node,
+                                                  struct device_node ***nextp)
 {
        struct device_node *ret = NULL, *prev_sibling = NULL;
        struct device_node *dp;
 
        return ret;
 }
+
+unsigned int prom_early_allocated __initdata;
+
+void __init prom_build_devicetree(void)
+{
+       struct device_node **nextp;
+
+       allnodes = prom_create_node(prom_root_node, NULL);
+       allnodes->path_component_name = "";
+       allnodes->full_name = "/";
+
+       nextp = &allnodes->allnext;
+       allnodes->child = prom_build_tree(allnodes,
+                                         prom_getchild(allnodes->node),
+                                         &nextp);
+       of_console_init();
+
+       printk("PROM: Built device tree with %u bytes of memory.\n",
+              prom_early_allocated);
+
+       of_fill_in_cpu_data();
+}