diff options
Diffstat (limited to 'arch/arm/include/asm/tlb.h')
| -rw-r--r-- | arch/arm/include/asm/tlb.h | 27 | 
1 files changed, 4 insertions, 23 deletions
diff --git a/arch/arm/include/asm/tlb.h b/arch/arm/include/asm/tlb.h index 99a19512ee26..bdf2b8458ec1 100644 --- a/arch/arm/include/asm/tlb.h +++ b/arch/arm/include/asm/tlb.h @@ -33,18 +33,6 @@  #include <asm/pgalloc.h>  #include <asm/tlbflush.h> -/* - * We need to delay page freeing for SMP as other CPUs can access pages - * which have been removed but not yet had their TLB entries invalidated. - * Also, as ARMv7 speculative prefetch can drag new entries into the TLB, - * we need to apply this same delaying tactic to ensure correct operation. - */ -#if defined(CONFIG_SMP) || defined(CONFIG_CPU_32v7) -#define tlb_fast_mode(tlb)	0 -#else -#define tlb_fast_mode(tlb)	1 -#endif -  #define MMU_GATHER_BUNDLE	8  /* @@ -112,12 +100,10 @@ static inline void __tlb_alloc_page(struct mmu_gather *tlb)  static inline void tlb_flush_mmu(struct mmu_gather *tlb)  {  	tlb_flush(tlb); -	if (!tlb_fast_mode(tlb)) { -		free_pages_and_swap_cache(tlb->pages, tlb->nr); -		tlb->nr = 0; -		if (tlb->pages == tlb->local) -			__tlb_alloc_page(tlb); -	} +	free_pages_and_swap_cache(tlb->pages, tlb->nr); +	tlb->nr = 0; +	if (tlb->pages == tlb->local) +		__tlb_alloc_page(tlb);  }  static inline void @@ -178,11 +164,6 @@ tlb_end_vma(struct mmu_gather *tlb, struct vm_area_struct *vma)  static inline int __tlb_remove_page(struct mmu_gather *tlb, struct page *page)  { -	if (tlb_fast_mode(tlb)) { -		free_page_and_swap_cache(page); -		return 1; /* avoid calling tlb_flush_mmu */ -	} -  	tlb->pages[tlb->nr++] = page;  	VM_BUG_ON(tlb->nr > tlb->max);  	return tlb->max - tlb->nr;  |