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()
505 pmd_t *pmdp, pmd_t entry, int dirty) in pmdp_set_access_flags() argument
509 WARN_ON(!pmd_trans_huge(*pmdp)); in pmdp_set_access_flags()
512 changed = !pmd_same(*(pmdp), entry); in pmdp_set_access_flags()
514 __ptep_set_access_flags(pmdp_ptep(pmdp), pmd_pte(entry)); in pmdp_set_access_flags()
524 pmd_t *pmdp, unsigned long clr, in pmd_hugepage_update() argument
531 WARN_ON(!pmd_trans_huge(*pmdp)); in pmd_hugepage_update()
544 : "=&r" (old), "=&r" (tmp), "=m" (*pmdp) in pmd_hugepage_update()
545 : "r" (pmdp), "r" (clr), "m" (*pmdp), "i" (_PAGE_BUSY), "r" (set) in pmd_hugepage_update()
548 old = pmd_val(*pmdp); in pmd_hugepage_update()
549 *pmdp = __pmd((old & ~clr) | set); in pmd_hugepage_update()
553 hpte_do_hugepage_flush(mm, addr, pmdp, old); in pmd_hugepage_update()
558 pmd_t *pmdp) in pmdp_clear_flush() argument
563 if (pmd_trans_huge(*pmdp)) { in pmdp_clear_flush()
564 pmd = pmdp_get_and_clear(vma->vm_mm, address, pmdp); in pmdp_clear_flush()
569 pmd = *pmdp; in pmdp_clear_flush()
570 pmd_clear(pmdp); in pmdp_clear_flush()
602 unsigned long address, pmd_t *pmdp) in pmdp_test_and_clear_young() argument
604 return __pmdp_test_and_clear_young(vma->vm_mm, address, pmdp); in pmdp_test_and_clear_young()
616 unsigned long address, pmd_t *pmdp) in pmdp_clear_flush_young() argument
618 return __pmdp_test_and_clear_young(vma->vm_mm, address, pmdp); in pmdp_clear_flush_young()
626 unsigned long address, pmd_t *pmdp) in pmdp_splitting_flush() argument
633 WARN_ON(!pmd_trans_huge(*pmdp)); in pmdp_splitting_flush()
646 : "=&r" (old), "=&r" (tmp), "=m" (*pmdp) in pmdp_splitting_flush()
647 : "r" (pmdp), "i" (_PAGE_SPLITTING), "m" (*pmdp), "i" (_PAGE_BUSY) in pmdp_splitting_flush()
650 old = pmd_val(*pmdp); in pmdp_splitting_flush()
651 *pmdp = __pmd(old | _PAGE_SPLITTING); in pmdp_splitting_flush()
661 hpte_do_hugepage_flush(vma->vm_mm, address, pmdp, old); in pmdp_splitting_flush()
674 void pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, in pgtable_trans_huge_deposit() argument
682 pgtable_slot = (pgtable_t *)pmdp + PTRS_PER_PMD; in pgtable_trans_huge_deposit()
693 pgtable_t pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp) in pgtable_trans_huge_withdraw() argument
699 pgtable_slot = (pgtable_t *)pmdp + PTRS_PER_PMD; in pgtable_trans_huge_withdraw()
718 pmd_t *pmdp, pmd_t pmd) in set_pmd_at() argument
721 WARN_ON((pmd_val(*pmdp) & (_PAGE_PRESENT | _PAGE_USER)) == in set_pmd_at()
727 return set_pte_at(mm, addr, pmdp_ptep(pmdp), pmd_pte(pmd)); in set_pmd_at()
731 pmd_t *pmdp) in pmdp_invalidate() argument
733 pmd_hugepage_update(vma->vm_mm, address, pmdp, _PAGE_PRESENT, 0); in pmdp_invalidate()
741 pmd_t *pmdp, unsigned long old_pmd) in hpte_do_hugepage_flush() argument
772 return flush_hash_hugepage(vsid, addr, pmdp, psize, ssize, flags); in hpte_do_hugepage_flush()
821 unsigned long addr, pmd_t *pmdp) in pmdp_get_and_clear() argument
828 old = pmd_hugepage_update(mm, addr, pmdp, ~0UL, 0); in pmdp_get_and_clear()
835 pgtable_slot = (pgtable_t *)pmdp + PTRS_PER_PMD; in pmdp_get_and_clear()