diff options
Diffstat (limited to 'arch/arm/kernel/smp.c')
| -rw-r--r-- | arch/arm/kernel/smp.c | 13 | 
1 files changed, 10 insertions, 3 deletions
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index e7f92a4321f3..d88ff0230e82 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c @@ -27,7 +27,7 @@  #include <linux/clockchips.h>  #include <linux/completion.h> -#include <asm/atomic.h> +#include <linux/atomic.h>  #include <asm/cacheflush.h>  #include <asm/cpu.h>  #include <asm/cputype.h> @@ -365,8 +365,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus)  	 */  	if (max_cpus > ncores)  		max_cpus = ncores; - -	if (max_cpus > 1) { +	if (ncores > 1 && max_cpus) {  		/*  		 * Enable the local timer or broadcast device for the  		 * boot CPU, but only if we have more than one CPU. @@ -374,6 +373,14 @@ void __init smp_prepare_cpus(unsigned int max_cpus)  		percpu_timer_setup();  		/* +		 * Initialise the present map, which describes the set of CPUs +		 * actually populated at the present time. A platform should +		 * re-initialize the map in platform_smp_prepare_cpus() if +		 * present != possible (e.g. physical hotplug). +		 */ +		init_cpu_present(&cpu_possible_map); + +		/*  		 * Initialise the SCU if there are more than one CPU  		 * and let them know where to start.  		 */  |