Переглянути джерело

powerpc: Fix topology core_id endian issue on LE builds

cpu_to_core_id() is missing a byteswap:

cat /sys/devices/system/cpu/cpu63/topology/core_id
201326592

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Anton Blanchard 11 роки тому
батько
коміт
f8a1883a83
1 змінених файлів з 2 додано та 2 видалено
  1. 2 2
      arch/powerpc/kernel/smp.c

+ 2 - 2
arch/powerpc/kernel/smp.c

@@ -580,7 +580,7 @@ int __cpu_up(unsigned int cpu, struct task_struct *tidle)
 int cpu_to_core_id(int cpu)
 int cpu_to_core_id(int cpu)
 {
 {
 	struct device_node *np;
 	struct device_node *np;
-	const int *reg;
+	const __be32 *reg;
 	int id = -1;
 	int id = -1;
 
 
 	np = of_get_cpu_node(cpu, NULL);
 	np = of_get_cpu_node(cpu, NULL);
@@ -591,7 +591,7 @@ int cpu_to_core_id(int cpu)
 	if (!reg)
 	if (!reg)
 		goto out;
 		goto out;
 
 
-	id = *reg;
+	id = be32_to_cpup(reg);
 out:
 out:
 	of_node_put(np);
 	of_node_put(np);
 	return id;
 	return id;