diff options
Diffstat (limited to 'arch/um/include/asm/tlb.h')
| -rw-r--r-- | arch/um/include/asm/tlb.h | 16 | 
1 files changed, 14 insertions, 2 deletions
| diff --git a/arch/um/include/asm/tlb.h b/arch/um/include/asm/tlb.h index 29b0301c18aa..16eb63fac57d 100644 --- a/arch/um/include/asm/tlb.h +++ b/arch/um/include/asm/tlb.h @@ -59,13 +59,25 @@ extern void flush_tlb_mm_range(struct mm_struct *mm, unsigned long start,  			       unsigned long end);  static inline void +tlb_flush_mmu_tlbonly(struct mmu_gather *tlb) +{ +	flush_tlb_mm_range(tlb->mm, tlb->start, tlb->end); +} + +static inline void +tlb_flush_mmu_free(struct mmu_gather *tlb) +{ +	init_tlb_gather(tlb); +} + +static inline void  tlb_flush_mmu(struct mmu_gather *tlb)  {  	if (!tlb->need_flush)  		return; -	flush_tlb_mm_range(tlb->mm, tlb->start, tlb->end); -	init_tlb_gather(tlb); +	tlb_flush_mmu_tlbonly(tlb); +	tlb_flush_mmu_free(tlb);  }  /* tlb_finish_mmu | 

