ARM: 8943/1: Fix topology setup in case of CPU hotplug for CONFIG_SCHED_MC
[linux-2.6-microblaze.git] / arch / arm / kernel / topology.c
index 3a4dde0..b5adaf7 100644 (file)
@@ -196,9 +196,8 @@ void store_cpu_topology(unsigned int cpuid)
        struct cpu_topology *cpuid_topo = &cpu_topology[cpuid];
        unsigned int mpidr;
 
-       /* If the cpu topology has been already set, just return */
-       if (cpuid_topo->core_id != -1)
-               return;
+       if (cpuid_topo->package_id != -1)
+               goto topology_populated;
 
        mpidr = read_cpuid_mpidr();
 
@@ -231,14 +230,15 @@ void store_cpu_topology(unsigned int cpuid)
                cpuid_topo->package_id = -1;
        }
 
-       update_siblings_masks(cpuid);
-
        update_cpu_capacity(cpuid);
 
        pr_info("CPU%u: thread %d, cpu %d, socket %d, mpidr %x\n",
                cpuid, cpu_topology[cpuid].thread_id,
                cpu_topology[cpuid].core_id,
                cpu_topology[cpuid].package_id, mpidr);
+
+topology_populated:
+       update_siblings_masks(cpuid);
 }
 
 static inline int cpu_corepower_flags(void)