aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-mvebu/platsmp.c19
1 files changed, 1 insertions, 18 deletions
diff --git a/arch/arm/mach-mvebu/platsmp.c b/arch/arm/mach-mvebu/platsmp.c
index ce81d3031405..2e4508a9baf6 100644
--- a/arch/arm/mach-mvebu/platsmp.c
+++ b/arch/arm/mach-mvebu/platsmp.c
@@ -87,28 +87,11 @@ static int armada_xp_boot_secondary(unsigned int cpu, struct task_struct *idle)
87 87
88static void __init armada_xp_smp_init_cpus(void) 88static void __init armada_xp_smp_init_cpus(void)
89{ 89{
90 struct device_node *np; 90 unsigned int ncores = num_possible_cpus();
91 unsigned int i, ncores;
92 91
93 np = of_find_node_by_name(NULL, "cpus");
94 if (!np)
95 panic("No 'cpus' node found\n");
96
97 ncores = of_get_child_count(np);
98 if (ncores == 0 || ncores > ARMADA_XP_MAX_CPUS) 92 if (ncores == 0 || ncores > ARMADA_XP_MAX_CPUS)
99 panic("Invalid number of CPUs in DT\n"); 93 panic("Invalid number of CPUs in DT\n");
100 94
101 /* Limit possible CPUs to defconfig */
102 if (ncores > nr_cpu_ids) {
103 pr_warn("SMP: %d CPUs physically present. Only %d configured.",
104 ncores, nr_cpu_ids);
105 pr_warn("Clipping CPU count to %d\n", nr_cpu_ids);
106 ncores = nr_cpu_ids;
107 }
108
109 for (i = 0; i < ncores; i++)
110 set_cpu_possible(i, true);
111
112 set_smp_cross_call(armada_mpic_send_doorbell); 95 set_smp_cross_call(armada_mpic_send_doorbell);
113} 96}
114 97