aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64/kernel/smp_psci.c
diff options
context:
space:
mode:
authorLiviu Dudau <Liviu.Dudau@arm.com>2013-03-26 11:02:51 +0000
committerCatalin Marinas <catalin.marinas@arm.com>2013-03-26 11:58:10 +0000
commita9a193ffe51d036a7c2d30d7fbdb66498c688237 (patch)
tree079f6104a5075dd894370905db7b089475c89db5 /arch/arm64/kernel/smp_psci.c
parentarm64: head: match all affinity levels in the pen of the secondaries (diff)
downloadlinux-dev-a9a193ffe51d036a7c2d30d7fbdb66498c688237.tar.xz
linux-dev-a9a193ffe51d036a7c2d30d7fbdb66498c688237.zip
arm64: psci: Use the MPIDR values from cpu_logical_map for cpu ids.
With the (re)introduction of cpu_logical_map in arm64 we switch to the use of MPIDR values to identify CPUs. Update the psci code to do that. Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to '')
-rw-r--r--arch/arm64/kernel/smp_psci.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm64/kernel/smp_psci.c b/arch/arm64/kernel/smp_psci.c
index 112091684c22..0c533301be77 100644
--- a/arch/arm64/kernel/smp_psci.c
+++ b/arch/arm64/kernel/smp_psci.c
@@ -21,6 +21,7 @@
#include <linux/smp.h>
#include <asm/psci.h>
+#include <asm/smp_plat.h>
static int __init smp_psci_init_cpu(struct device_node *dn, int cpu)
{
@@ -36,7 +37,7 @@ static int __init smp_psci_prepare_cpu(int cpu)
return -ENODEV;
}
- err = psci_ops.cpu_on(cpu, __pa(secondary_holding_pen));
+ err = psci_ops.cpu_on(cpu_logical_map(cpu), __pa(secondary_holding_pen));
if (err) {
pr_err("psci: failed to boot CPU%d (%d)\n", cpu, err);
return err;
@@ -47,6 +48,6 @@ static int __init smp_psci_prepare_cpu(int cpu)
const struct smp_enable_ops smp_psci_ops __initconst = {
.name = "psci",
- .init_cpu = smp_psci_init_cpu,
+ .init_cpu = smp_psci_init_cpu,
.prepare_cpu = smp_psci_prepare_cpu,
};