diff options
| -rw-r--r-- | arch/arm/mach-mvebu/platsmp.c | 19 |
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 | ||
| 88 | static void __init armada_xp_smp_init_cpus(void) | 88 | static 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 | ||
