aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64
diff options
context:
space:
mode:
authorMark Brown <broonie@linaro.org>2014-05-02 16:38:28 -0400
committerCatalin Marinas <catalin.marinas@arm.com>2014-05-16 12:12:16 -0400
commitc31bf0488d67737668b7401fac4b7ed550eaad76 (patch)
treec8eaaa0a58125249f6ecda89d28767756f8d924b /arch/arm64
parent5dd349bab5c0126824b60810c80689980a041296 (diff)
arm64: topology: Initialise default topology state immediately
As a legacy of the way 32 bit ARM did things the topology code uses a null topology map by default and then overwrites it by mapping cores with no information to a cluster by themselves later. In order to make it simpler to reset things as part of recovering from parse failures in firmware information directly set this configuration on init. A core will always be its own sibling so there should be no risk of confusion with firmware provided information. Signed-off-by: Mark Brown <broonie@linaro.org> Reviewed-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64')
-rw-r--r--arch/arm64/kernel/topology.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/arm64/kernel/topology.c b/arch/arm64/kernel/topology.c
index 3e06b0be4ec8..ff662b23af5f 100644
--- a/arch/arm64/kernel/topology.c
+++ b/arch/arm64/kernel/topology.c
@@ -43,9 +43,6 @@ static void update_siblings_masks(unsigned int cpuid)
43 * reset it to default behaviour 43 * reset it to default behaviour
44 */ 44 */
45 pr_debug("CPU%u: No topology information configured\n", cpuid); 45 pr_debug("CPU%u: No topology information configured\n", cpuid);
46 cpuid_topo->core_id = 0;
47 cpumask_set_cpu(cpuid, &cpuid_topo->core_sibling);
48 cpumask_set_cpu(cpuid, &cpuid_topo->thread_sibling);
49 return; 46 return;
50 } 47 }
51 48
@@ -87,9 +84,12 @@ void __init init_cpu_topology(void)
87 struct cpu_topology *cpu_topo = &cpu_topology[cpu]; 84 struct cpu_topology *cpu_topo = &cpu_topology[cpu];
88 85
89 cpu_topo->thread_id = -1; 86 cpu_topo->thread_id = -1;
90 cpu_topo->core_id = -1; 87 cpu_topo->core_id = 0;
91 cpu_topo->cluster_id = -1; 88 cpu_topo->cluster_id = -1;
89
92 cpumask_clear(&cpu_topo->core_sibling); 90 cpumask_clear(&cpu_topo->core_sibling);
91 cpumask_set_cpu(cpu, &cpu_topo->core_sibling);
93 cpumask_clear(&cpu_topo->thread_sibling); 92 cpumask_clear(&cpu_topo->thread_sibling);
93 cpumask_set_cpu(cpu, &cpu_topo->thread_sibling);
94 } 94 }
95} 95}