Lines Matching refs:mm
24 void get_new_mmu_context(struct mm_struct *mm);
27 int init_new_context(struct task_struct *tsk, struct mm_struct *mm);
29 void destroy_context(struct mm_struct *mm);
37 static inline void tsb_context_switch_ctx(struct mm_struct *mm,
40 __tsb_context_switch(__pa(mm->pgd),
41 &mm->context.tsb_block[MM_TSB_BASE],
43 (mm->context.tsb_block[MM_TSB_HUGE].tsb ?
44 &mm->context.tsb_block[MM_TSB_HUGE] :
49 , __pa(&mm->context.tsb_descr[MM_TSB_BASE]),
55 void tsb_grow(struct mm_struct *mm,
59 void smp_tsb_sync(struct mm_struct *mm);
80 static inline void switch_mm(struct mm_struct *old_mm, struct mm_struct *mm, struct task_struct *tsk)
85 per_cpu(per_cpu_secondary_mm, cpu) = mm;
86 if (unlikely(mm == &init_mm))
89 spin_lock_irqsave(&mm->context.lock, flags);
90 ctx_valid = CTX_VALID(mm->context);
92 get_new_mmu_context(mm);
124 tsb_context_switch_ctx(mm, CTX_HWBITS(mm->context));
130 if (!ctx_valid || !cpumask_test_cpu(cpu, mm_cpumask(mm))) {
131 cpumask_set_cpu(cpu, mm_cpumask(mm));
132 __flush_tlb_mm(CTX_HWBITS(mm->context),
135 spin_unlock_irqrestore(&mm->context.lock, flags);
138 #define activate_mm(active_mm, mm) switch_mm(active_mm, mm, NULL)
179 if (current && current->mm && current->mm->context.adi) {
189 static inline unsigned long mm_untag_mask(struct mm_struct *mm)