Lines Matching refs:mm
64 static inline void __tlb_flush_full(struct mm_struct *mm) in __tlb_flush_full() argument
67 atomic_add(0x10000, &mm->context.attach_count); in __tlb_flush_full()
68 if (cpumask_equal(mm_cpumask(mm), cpumask_of(smp_processor_id()))) { in __tlb_flush_full()
76 cpumask_copy(mm_cpumask(mm), in __tlb_flush_full()
77 &mm->context.cpu_attach_mask); in __tlb_flush_full()
79 atomic_sub(0x10000, &mm->context.attach_count); in __tlb_flush_full()
86 static inline void __tlb_flush_asce(struct mm_struct *mm, unsigned long asce) in __tlb_flush_asce() argument
91 active = (mm == current->active_mm) ? 1 : 0; in __tlb_flush_asce()
92 count = atomic_add_return(0x10000, &mm->context.attach_count); in __tlb_flush_asce()
94 cpumask_equal(mm_cpumask(mm), cpumask_of(smp_processor_id()))) { in __tlb_flush_asce()
103 cpumask_copy(mm_cpumask(mm), in __tlb_flush_asce()
104 &mm->context.cpu_attach_mask); in __tlb_flush_asce()
106 atomic_sub(0x10000, &mm->context.attach_count); in __tlb_flush_asce()
120 #define __tlb_flush_full(mm) __tlb_flush_local() argument
125 static inline void __tlb_flush_asce(struct mm_struct *mm, unsigned long asce) in __tlb_flush_asce() argument
143 static inline void __tlb_flush_mm(struct mm_struct * mm) in __tlb_flush_mm() argument
150 if (MACHINE_HAS_IDTE && list_empty(&mm->context.gmap_list)) in __tlb_flush_mm()
151 __tlb_flush_asce(mm, (unsigned long) mm->pgd | in __tlb_flush_mm()
152 mm->context.asce_bits); in __tlb_flush_mm()
154 __tlb_flush_full(mm); in __tlb_flush_mm()
157 static inline void __tlb_flush_mm_lazy(struct mm_struct * mm) in __tlb_flush_mm_lazy() argument
159 if (mm->context.flush_mm) { in __tlb_flush_mm_lazy()
160 __tlb_flush_mm(mm); in __tlb_flush_mm_lazy()
161 mm->context.flush_mm = 0; in __tlb_flush_mm_lazy()
187 static inline void flush_tlb_mm(struct mm_struct *mm) in flush_tlb_mm() argument
189 __tlb_flush_mm_lazy(mm); in flush_tlb_mm()