Lines Matching refs:mm
367 static pte_t *get_from_cache(struct mm_struct *mm) in get_from_cache() argument
371 spin_lock(&mm->page_table_lock); in get_from_cache()
372 ret = mm->context.pte_frag; in get_from_cache()
380 mm->context.pte_frag = pte_frag; in get_from_cache()
382 spin_unlock(&mm->page_table_lock); in get_from_cache()
386 static pte_t *__alloc_for_cache(struct mm_struct *mm, int kernel) in __alloc_for_cache() argument
399 spin_lock(&mm->page_table_lock); in __alloc_for_cache()
405 if (likely(!mm->context.pte_frag)) { in __alloc_for_cache()
407 mm->context.pte_frag = ret + PTE_FRAG_SIZE; in __alloc_for_cache()
409 spin_unlock(&mm->page_table_lock); in __alloc_for_cache()
414 pte_t *page_table_alloc(struct mm_struct *mm, unsigned long vmaddr, int kernel) in page_table_alloc() argument
418 pte = get_from_cache(mm); in page_table_alloc()
422 return __alloc_for_cache(mm, kernel); in page_table_alloc()
425 void page_table_free(struct mm_struct *mm, unsigned long *table, int kernel) in page_table_free() argument
513 unsigned long pmd_hugepage_update(struct mm_struct *mm, unsigned long addr, in pmd_hugepage_update() argument
522 assert_spin_locked(&mm->page_table_lock); in pmd_hugepage_update()
543 hpte_do_hugepage_flush(mm, addr, pmdp, old); in pmd_hugepage_update()
659 void pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, in pgtable_trans_huge_deposit() argument
663 assert_spin_locked(&mm->page_table_lock); in pgtable_trans_huge_deposit()
678 pgtable_t pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp) in pgtable_trans_huge_withdraw() argument
683 assert_spin_locked(&mm->page_table_lock); in pgtable_trans_huge_withdraw()
702 void set_pmd_at(struct mm_struct *mm, unsigned long addr, in set_pmd_at() argument
708 assert_spin_locked(&mm->page_table_lock); in set_pmd_at()
712 return set_pte_at(mm, addr, pmdp_ptep(pmdp), pmd_pte(pmd)); in set_pmd_at()
725 void hpte_do_hugepage_flush(struct mm_struct *mm, unsigned long addr, in hpte_do_hugepage_flush() argument
736 psize = get_slice_psize(mm, addr); in hpte_do_hugepage_flush()
746 vsid = get_vsid(mm->context.id, addr, ssize); in hpte_do_hugepage_flush()
754 if (cpumask_equal(mm_cpumask(mm), tmp)) in hpte_do_hugepage_flush()
805 pmd_t pmdp_huge_get_and_clear(struct mm_struct *mm, in pmdp_huge_get_and_clear() argument
813 old = pmd_hugepage_update(mm, addr, pmdp, ~0UL, 0); in pmdp_huge_get_and_clear()