diff options
Diffstat (limited to 'arch/arm64/kernel/process.c')
| -rw-r--r-- | arch/arm64/kernel/process.c | 7 | 
1 files changed, 3 insertions, 4 deletions
| diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c index 4784011cecac..7697a4b48b7c 100644 --- a/arch/arm64/kernel/process.c +++ b/arch/arm64/kernel/process.c @@ -126,7 +126,7 @@ void arch_cpu_idle(void)  	 * tricks  	 */  	cpu_do_idle(); -	local_irq_enable(); +	raw_local_irq_enable();  }  #ifdef CONFIG_HOTPLUG_CPU @@ -522,14 +522,13 @@ static void erratum_1418040_thread_switch(struct task_struct *prev,  	bool prev32, next32;  	u64 val; -	if (!(IS_ENABLED(CONFIG_ARM64_ERRATUM_1418040) && -	      cpus_have_const_cap(ARM64_WORKAROUND_1418040))) +	if (!IS_ENABLED(CONFIG_ARM64_ERRATUM_1418040))  		return;  	prev32 = is_compat_thread(task_thread_info(prev));  	next32 = is_compat_thread(task_thread_info(next)); -	if (prev32 == next32) +	if (prev32 == next32 || !this_cpu_has_cap(ARM64_WORKAROUND_1418040))  		return;  	val = read_sysreg(cntkctl_el1); | 
