[PATCH] ARM: BCM63xx: fix parameter to of_get_cpu_node in bcm63138_smp_boot_secondary

Sudeep Holla sudeep.holla at arm.com
Fri Jul 10 10:36:11 PDT 2015

of_get_cpu_node provides the device node associated with the given
logical CPU and cpu_logical_map contains the physical id for each CPU
in the logical ordering. Passing cpu_logical_map(cpu) to of_get_cpu_node
is incorrect.

This patch fixes the issue by passing the logical CPU number to

Cc: Florian Fainelli <f.fainelli at gmail.com>
Cc: bcm-kernel-feedback-list at broadcom.com
Signed-off-by: Sudeep Holla <sudeep.holla at arm.com>
 arch/arm/mach-bcm/bcm63xx_smp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


I found this accidentally when searching for cpu_logical_map. It's
clearly a bug, it seem to be working fine as the physical and the
logical CPU ordering is same most of the time.


diff --git a/arch/arm/mach-bcm/bcm63xx_smp.c b/arch/arm/mach-bcm/bcm63xx_smp.c
index 3f014f18cea5..b8e18cc8f237 100644
--- a/arch/arm/mach-bcm/bcm63xx_smp.c
+++ b/arch/arm/mach-bcm/bcm63xx_smp.c
@@ -127,7 +127,7 @@ static int bcm63138_smp_boot_secondary(unsigned int cpu,
 	/* Locate the secondary CPU node */
-	dn = of_get_cpu_node(cpu_logical_map(cpu), NULL);
+	dn = of_get_cpu_node(cpu, NULL);
 	if (!dn) {
 		pr_err("SMP: failed to locate secondary CPU%d node\n", cpu);
 		ret = -ENODEV;

More information about the linux-arm-kernel mailing list