diff options
Diffstat (limited to 'arch/x86/include')
| -rw-r--r-- | arch/x86/include/asm/kfence.h | 7 | ||||
| -rw-r--r-- | arch/x86/include/asm/smp.h | 1 | 
2 files changed, 7 insertions, 1 deletions
| diff --git a/arch/x86/include/asm/kfence.h b/arch/x86/include/asm/kfence.h index 97bbb4a9083a..05b48b33baf0 100644 --- a/arch/x86/include/asm/kfence.h +++ b/arch/x86/include/asm/kfence.h @@ -56,8 +56,13 @@ static inline bool kfence_protect_page(unsigned long addr, bool protect)  	else  		set_pte(pte, __pte(pte_val(*pte) | _PAGE_PRESENT)); -	/* Flush this CPU's TLB. */ +	/* +	 * Flush this CPU's TLB, assuming whoever did the allocation/free is +	 * likely to continue running on this CPU. +	 */ +	preempt_disable();  	flush_tlb_one_kernel(addr); +	preempt_enable();  	return true;  } diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h index c0538f82c9a2..630ff08532be 100644 --- a/arch/x86/include/asm/smp.h +++ b/arch/x86/include/asm/smp.h @@ -132,6 +132,7 @@ void native_play_dead(void);  void play_dead_common(void);  void wbinvd_on_cpu(int cpu);  int wbinvd_on_all_cpus(void); +void cond_wakeup_cpu0(void);  void native_smp_send_reschedule(int cpu);  void native_send_call_func_ipi(const struct cpumask *mask); |