Lines Matching refs:mm
106 static inline u64 cpu_context(unsigned int cpu, const struct mm_struct *mm) in cpu_context() argument
109 return atomic64_read(&mm->context.mmid); in cpu_context()
111 return mm->context.asid[cpu]; in cpu_context()
115 struct mm_struct *mm, u64 ctx) in set_cpu_context() argument
118 atomic64_set(&mm->context.mmid, ctx); in set_cpu_context()
120 mm->context.asid[cpu] = ctx; in set_cpu_context()
124 #define cpu_asid(cpu, mm) \ argument
125 (cpu_context((cpu), (mm)) & cpu_asid_mask(&cpu_data[cpu]))
127 static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) in enter_lazy_tlb() argument
131 extern void get_new_mmu_context(struct mm_struct *mm);
132 extern void check_mmu_context(struct mm_struct *mm);
133 extern void check_switch_mmu_context(struct mm_struct *mm);
140 init_new_context(struct task_struct *tsk, struct mm_struct *mm) in init_new_context() argument
145 set_cpu_context(0, mm, 0); in init_new_context()
148 set_cpu_context(i, mm, 0); in init_new_context()
151 mm->context.bd_emupage_allocmap = NULL; in init_new_context()
152 spin_lock_init(&mm->context.bd_emupage_lock); in init_new_context()
153 init_waitqueue_head(&mm->context.bd_emupage_queue); in init_new_context()
183 static inline void destroy_context(struct mm_struct *mm) in destroy_context() argument
185 dsemul_mm_cleanup(mm); in destroy_context()
189 #define deactivate_mm(tsk, mm) do { } while (0) argument
192 drop_mmu_context(struct mm_struct *mm) in drop_mmu_context() argument
202 ctx = cpu_context(cpu, mm); in drop_mmu_context()
223 } else if (cpumask_test_cpu(cpu, mm_cpumask(mm))) { in drop_mmu_context()
229 get_new_mmu_context(mm); in drop_mmu_context()
230 write_c0_entryhi(cpu_asid(cpu, mm)); in drop_mmu_context()
234 set_cpu_context(cpu, mm, 0); in drop_mmu_context()