Lines Matching refs:pmdp
95 pmd_t *pmdp; in map_kernel_page() local
103 pmdp = pmd_alloc(&init_mm, pudp, ea); in map_kernel_page()
104 if (!pmdp) in map_kernel_page()
106 ptep = pte_alloc_kernel(pmdp, ea); in map_kernel_page()
123 pmdp = early_alloc_pgtable(PMD_TABLE_SIZE); in map_kernel_page()
124 BUG_ON(pmdp == NULL); in map_kernel_page()
125 pud_populate(&init_mm, pudp, pmdp); in map_kernel_page()
127 pmdp = pmd_offset(pudp, ea); in map_kernel_page()
128 if (!pmd_present(*pmdp)) { in map_kernel_page()
131 pmd_populate_kernel(&init_mm, pmdp, ptep); in map_kernel_page()
133 ptep = pte_offset_kernel(pmdp, ea); in map_kernel_page()
495 pmd_t *pmdp, pmd_t entry, int dirty) in pmdp_set_access_flags() argument
499 WARN_ON(!pmd_trans_huge(*pmdp)); in pmdp_set_access_flags()
502 changed = !pmd_same(*(pmdp), entry); in pmdp_set_access_flags()
504 __ptep_set_access_flags(pmdp_ptep(pmdp), pmd_pte(entry)); in pmdp_set_access_flags()
514 pmd_t *pmdp, unsigned long clr, in pmd_hugepage_update() argument
521 WARN_ON(!pmd_trans_huge(*pmdp)); in pmd_hugepage_update()
534 : "=&r" (old), "=&r" (tmp), "=m" (*pmdp) in pmd_hugepage_update()
535 : "r" (pmdp), "r" (clr), "m" (*pmdp), "i" (_PAGE_BUSY), "r" (set) in pmd_hugepage_update()
538 old = pmd_val(*pmdp); in pmd_hugepage_update()
539 *pmdp = __pmd((old & ~clr) | set); in pmd_hugepage_update()
543 hpte_do_hugepage_flush(mm, addr, pmdp, old); in pmd_hugepage_update()
548 pmd_t *pmdp) in pmdp_collapse_flush() argument
553 VM_BUG_ON(pmd_trans_huge(*pmdp)); in pmdp_collapse_flush()
555 pmd = *pmdp; in pmdp_collapse_flush()
556 pmd_clear(pmdp); in pmdp_collapse_flush()
587 unsigned long address, pmd_t *pmdp) in pmdp_test_and_clear_young() argument
589 return __pmdp_test_and_clear_young(vma->vm_mm, address, pmdp); in pmdp_test_and_clear_young()
601 unsigned long address, pmd_t *pmdp) in pmdp_clear_flush_young() argument
603 return __pmdp_test_and_clear_young(vma->vm_mm, address, pmdp); in pmdp_clear_flush_young()
611 unsigned long address, pmd_t *pmdp) in pmdp_splitting_flush() argument
618 WARN_ON(!pmd_trans_huge(*pmdp)); in pmdp_splitting_flush()
631 : "=&r" (old), "=&r" (tmp), "=m" (*pmdp) in pmdp_splitting_flush()
632 : "r" (pmdp), "i" (_PAGE_SPLITTING), "m" (*pmdp), "i" (_PAGE_BUSY) in pmdp_splitting_flush()
635 old = pmd_val(*pmdp); in pmdp_splitting_flush()
636 *pmdp = __pmd(old | _PAGE_SPLITTING); in pmdp_splitting_flush()
646 hpte_do_hugepage_flush(vma->vm_mm, address, pmdp, old); in pmdp_splitting_flush()
659 void pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, in pgtable_trans_huge_deposit() argument
667 pgtable_slot = (pgtable_t *)pmdp + PTRS_PER_PMD; 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
684 pgtable_slot = (pgtable_t *)pmdp + PTRS_PER_PMD; in pgtable_trans_huge_withdraw()
703 pmd_t *pmdp, pmd_t pmd) in set_pmd_at() argument
706 WARN_ON((pmd_val(*pmdp) & (_PAGE_PRESENT | _PAGE_USER)) == in set_pmd_at()
712 return set_pte_at(mm, addr, pmdp_ptep(pmdp), pmd_pte(pmd)); in set_pmd_at()
716 pmd_t *pmdp) in pmdp_invalidate() argument
718 pmd_hugepage_update(vma->vm_mm, address, pmdp, _PAGE_PRESENT, 0); in pmdp_invalidate()
726 pmd_t *pmdp, unsigned long old_pmd) in hpte_do_hugepage_flush() argument
757 return flush_hash_hugepage(vsid, addr, pmdp, psize, ssize, flags); in hpte_do_hugepage_flush()
806 unsigned long addr, pmd_t *pmdp) in pmdp_huge_get_and_clear() argument
813 old = pmd_hugepage_update(mm, addr, pmdp, ~0UL, 0); in pmdp_huge_get_and_clear()
820 pgtable_slot = (pgtable_t *)pmdp + PTRS_PER_PMD; in pmdp_huge_get_and_clear()