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()
119 #define __tlb_flush_full(mm) __tlb_flush_local() argument
124 static inline void __tlb_flush_asce(struct mm_struct *mm, unsigned long asce) in __tlb_flush_asce() argument
141 static inline void __tlb_flush_mm(struct mm_struct * mm) in __tlb_flush_mm() argument
148 if (MACHINE_HAS_IDTE && list_empty(&mm->context.gmap_list)) in __tlb_flush_mm()
149 __tlb_flush_asce(mm, mm->context.asce); in __tlb_flush_mm()
151 __tlb_flush_full(mm); in __tlb_flush_mm()
154 static inline void __tlb_flush_mm_lazy(struct mm_struct * mm) in __tlb_flush_mm_lazy() argument
156 if (mm->context.flush_mm) { in __tlb_flush_mm_lazy()
157 __tlb_flush_mm(mm); in __tlb_flush_mm_lazy()
158 mm->context.flush_mm = 0; in __tlb_flush_mm_lazy()
184 static inline void flush_tlb_mm(struct mm_struct *mm) in flush_tlb_mm() argument
186 __tlb_flush_mm_lazy(mm); in flush_tlb_mm()