summaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/topology.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2006-11-29 16:04:08 +0100
committerRalf Baechle <ralf@linux-mips.org>2006-11-29 17:21:34 +0100
commitf5d6c63a67a8f124ddae88511427249d1dd87880 (patch)
tree5ddabc3f4a759e6142abe4790ed779d700466463 /arch/mips/kernel/topology.c
parentMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 (diff)
downloadlinux-f5d6c63a67a8f124ddae88511427249d1dd87880.tar.xz
linux-f5d6c63a67a8f124ddae88511427249d1dd87880.zip
[MIPS] Do topology_init even on uniprocessor kernels.
Otherwise CPU 0 doesn't show up in sysfs which breaks some software. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to '')
-rw-r--r--arch/mips/kernel/topology.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/arch/mips/kernel/topology.c b/arch/mips/kernel/topology.c
new file mode 100644
index 000000000000..660e44ed44d7
--- /dev/null
+++ b/arch/mips/kernel/topology.c
@@ -0,0 +1,29 @@
+#include <linux/cpu.h>
+#include <linux/cpumask.h>
+#include <linux/init.h>
+#include <linux/node.h>
+#include <linux/nodemask.h>
+#include <linux/percpu.h>
+
+static DEFINE_PER_CPU(struct cpu, cpu_devices);
+
+static int __init topology_init(void)
+{
+ int i, ret;
+
+#ifdef CONFIG_NUMA
+ for_each_online_node(i)
+ register_one_node(i);
+#endif /* CONFIG_NUMA */
+
+ for_each_present_cpu(i) {
+ ret = register_cpu(&per_cpu(cpu_devices, i), i);
+ if (ret)
+ printk(KERN_WARNING "topology_init: register_cpu %d "
+ "failed (%d)\n", i, ret);
+ }
+
+ return 0;
+}
+
+subsys_initcall(topology_init);