diff options
Diffstat (limited to 'arch/arm/kernel/smp.c')
| -rw-r--r-- | arch/arm/kernel/smp.c | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index d100eacdb79..8e20754dd31 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c @@ -43,6 +43,7 @@  #include <asm/ptrace.h>  #include <asm/localtimer.h>  #include <asm/smp_plat.h> +#include <asm/virt.h>  #include <asm/mach/arch.h>  /* @@ -202,8 +203,11 @@ int __cpuinit __cpu_disable(void)  	/*  	 * Flush user cache and TLB mappings, and then remove this CPU  	 * from the vm mask set of all processes. +	 * +	 * Caches are flushed to the Level of Unification Inner Shareable +	 * to write-back dirty lines to unified caches shared by all CPUs.  	 */ -	flush_cache_all(); +	flush_cache_louis();  	local_flush_tlb_all();  	clear_tasks_mm_cpumask(cpu); @@ -355,6 +359,8 @@ void __init smp_cpus_done(unsigned int max_cpus)  	       num_online_cpus(),  	       bogosum / (500000/HZ),  	       (bogosum / (5000/HZ)) % 100); + +	hyp_mode_check();  }  void __init smp_prepare_boot_cpu(void)  |