Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
[linux-2.6-block.git] / arch / sh / kernel / topology.c
index 0838942b70837f715634e80d099e9f31b0f99001..948fdb65693384826b77dbc6024a93bcb88246bd 100644 (file)
 
 static DEFINE_PER_CPU(struct cpu, cpu_devices);
 
+cpumask_t cpu_core_map[NR_CPUS];
+
+static cpumask_t cpu_coregroup_map(unsigned int cpu)
+{
+       /*
+        * Presently all SH-X3 SMP cores are multi-cores, so just keep it
+        * simple until we have a method for determining topology..
+        */
+       return cpu_possible_map;
+}
+
+const struct cpumask *cpu_coregroup_mask(unsigned int cpu)
+{
+       return &cpu_core_map[cpu];
+}
+
+int arch_update_cpu_topology(void)
+{
+       unsigned int cpu;
+
+       for_each_possible_cpu(cpu)
+               cpu_core_map[cpu] = cpu_coregroup_map(cpu);
+
+       return 0;
+}
+
 static int __init topology_init(void)
 {
        int i, ret;
@@ -26,7 +52,11 @@ static int __init topology_init(void)
 #endif
 
        for_each_present_cpu(i) {
-               ret = register_cpu(&per_cpu(cpu_devices, i), i);
+               struct cpu *c = &per_cpu(cpu_devices, i);
+
+               c->hotpluggable = 1;
+
+               ret = register_cpu(c, i);
                if (unlikely(ret))
                        printk(KERN_WARNING "%s: register_cpu %d failed (%d)\n",
                               __func__, i, ret);