aboutsummaryrefslogtreecommitdiff
path: root/drivers/base/arch_topology.c
diff options
context:
space:
mode:
authorGravatar Sudeep Holla <sudeep.holla@arm.com> 2022-07-04 11:16:00 +0100
committerGravatar Sudeep Holla <sudeep.holla@arm.com> 2022-07-04 16:22:29 +0100
commit26a2b73a7b15a51ec1409648c9b43882f66fbacf (patch)
tree07a5a43c7a93d85da236ec81b9f364c1b62de2f6 /drivers/base/arch_topology.c
parentarch_topology: Avoid parsing through all the CPUs once a outlier CPU is found (diff)
downloadlinux-26a2b73a7b15a51ec1409648c9b43882f66fbacf.tar.gz
linux-26a2b73a7b15a51ec1409648c9b43882f66fbacf.tar.bz2
linux-26a2b73a7b15a51ec1409648c9b43882f66fbacf.zip
arch_topology: Don't set cluster identifier as physical package identifier
Currently as we parse the CPU topology from /cpu-map node from the device tree, we assign generated cluster count as the physical package identifier for each CPU which is wrong. The device tree bindings for CPU topology supports sockets to infer the socket or physical package identifier for a given CPU. Since it is fairly new and not supported on most of the old and existing systems, we can assume all such systems have single socket/physical package. Fix the physical package identifier to 0 by removing the assignment of cluster identifier to the same. Link: https://lore.kernel.org/r/20220704101605.1318280-17-sudeep.holla@arm.com Tested-by: Ionela Voinescu <ionela.voinescu@arm.com> Tested-by: Conor Dooley <conor.dooley@microchip.com> Reviewed-by: Ionela Voinescu <ionela.voinescu@arm.com> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Diffstat (limited to 'drivers/base/arch_topology.c')
-rw-r--r--drivers/base/arch_topology.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/drivers/base/arch_topology.c b/drivers/base/arch_topology.c
index 8f6a964d2512..e384afb6cac7 100644
--- a/drivers/base/arch_topology.c
+++ b/drivers/base/arch_topology.c
@@ -549,7 +549,6 @@ static int __init parse_cluster(struct device_node *cluster, int depth)
bool leaf = true;
bool has_cores = false;
struct device_node *c;
- static int package_id __initdata;
int core_id = 0;
int i, ret;
@@ -588,7 +587,7 @@ static int __init parse_cluster(struct device_node *cluster, int depth)
}
if (leaf) {
- ret = parse_core(c, package_id, core_id++);
+ ret = parse_core(c, 0, core_id++);
} else {
pr_err("%pOF: Non-leaf cluster with core %s\n",
cluster, name);
@@ -605,9 +604,6 @@ static int __init parse_cluster(struct device_node *cluster, int depth)
if (leaf && !has_cores)
pr_warn("%pOF: empty cluster\n", cluster);
- if (leaf)
- package_id++;
-
return 0;
}