Lines Matching refs:mm
26 struct mm_struct *mm = tb->mm; in flush_tlb_pending() local
33 if (CTX_VALID(mm->context)) { in flush_tlb_pending()
35 global_flush_tlb_page(mm, tb->vaddrs[0]); in flush_tlb_pending()
38 smp_flush_tlb_pending(tb->mm, tb->tlb_nr, in flush_tlb_pending()
41 __flush_tlb_pending(CTX_HWBITS(tb->mm->context), in flush_tlb_pending()
69 static void tlb_batch_add_one(struct mm_struct *mm, unsigned long vaddr, in tlb_batch_add_one() argument
81 if (unlikely(nr != 0 && mm != tb->mm)) { in tlb_batch_add_one()
87 flush_tsb_user_page(mm, vaddr, huge); in tlb_batch_add_one()
88 global_flush_tlb_page(mm, vaddr); in tlb_batch_add_one()
93 tb->mm = mm; in tlb_batch_add_one()
112 void tlb_batch_add(struct mm_struct *mm, unsigned long vaddr, in tlb_batch_add() argument
137 flush_dcache_page_all(mm, page); in tlb_batch_add()
142 tlb_batch_add_one(mm, vaddr, pte_exec(orig), huge); in tlb_batch_add()
146 static void tlb_batch_pmd_scan(struct mm_struct *mm, unsigned long vaddr, in tlb_batch_pmd_scan() argument
158 tlb_batch_add_one(mm, vaddr, exec, false); in tlb_batch_pmd_scan()
166 void set_pmd_at(struct mm_struct *mm, unsigned long addr, in set_pmd_at() argument
173 if (mm == &init_mm) in set_pmd_at()
178 mm->context.huge_pte_count++; in set_pmd_at()
180 mm->context.huge_pte_count--; in set_pmd_at()
198 tlb_batch_add_one(mm, addr, exec, true); in set_pmd_at()
199 tlb_batch_add_one(mm, addr + REAL_HPAGE_SIZE, exec, in set_pmd_at()
202 tlb_batch_pmd_scan(mm, addr, orig); in set_pmd_at()
218 void pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, in pgtable_trans_huge_deposit() argument
223 assert_spin_locked(&mm->page_table_lock); in pgtable_trans_huge_deposit()
226 if (!pmd_huge_pte(mm, pmdp)) in pgtable_trans_huge_deposit()
229 list_add(lh, (struct list_head *) pmd_huge_pte(mm, pmdp)); in pgtable_trans_huge_deposit()
230 pmd_huge_pte(mm, pmdp) = pgtable; in pgtable_trans_huge_deposit()
233 pgtable_t pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp) in pgtable_trans_huge_withdraw() argument
238 assert_spin_locked(&mm->page_table_lock); in pgtable_trans_huge_withdraw()
241 pgtable = pmd_huge_pte(mm, pmdp); in pgtable_trans_huge_withdraw()
244 pmd_huge_pte(mm, pmdp) = NULL; in pgtable_trans_huge_withdraw()
246 pmd_huge_pte(mm, pmdp) = (pgtable_t) lh->next; in pgtable_trans_huge_withdraw()