| /linux/mm/ |
| A D | pgtable-generic.c | 134 pmd_t *pmdp) in pmdp_huge_clear_flush() argument 138 VM_BUG_ON(pmd_present(*pmdp) && !pmd_trans_huge(*pmdp) && in pmdp_huge_clear_flush() 139 !pmd_devmap(*pmdp)); in pmdp_huge_clear_flush() 167 if (!pmd_huge_pte(mm, pmdp)) in pgtable_trans_huge_deposit() 171 pmd_huge_pte(mm, pmdp) = pgtable; in pgtable_trans_huge_deposit() 184 pgtable = pmd_huge_pte(mm, pmdp); in pgtable_trans_huge_withdraw() 187 if (pmd_huge_pte(mm, pmdp)) in pgtable_trans_huge_withdraw() 195 pmd_t *pmdp) in pmdp_invalidate() argument 197 pmd_t old = pmdp_establish(vma, address, pmdp, pmd_mkinvalid(*pmdp)); in pmdp_invalidate() 205 pmd_t *pmdp) in pmdp_collapse_flush() argument [all …]
|
| /linux/arch/powerpc/mm/book3s64/ |
| A D | hash_pgtable.c | 152 pmd_t *pmdp; in hash__map_kernel_page() local 163 if (!pmdp) in hash__map_kernel_page() 165 ptep = pte_alloc_kernel(pmdp, ea); in hash__map_kernel_page() 198 WARN_ON(!hash__pmd_trans_huge(*pmdp) && !pmd_devmap(*pmdp)); in hash__pmd_hugepage_update() 211 : "r" (pmdp), "r" (cpu_to_be64(clr)), "m" (*pmdp), in hash__pmd_hugepage_update() 224 pmd_t *pmdp) in hash__pmdp_collapse_flush() argument 229 VM_BUG_ON(pmd_trans_huge(*pmdp)); in hash__pmdp_collapse_flush() 230 VM_BUG_ON(pmd_devmap(*pmdp)); in hash__pmdp_collapse_flush() 232 pmd = *pmdp; in hash__pmdp_collapse_flush() 233 pmd_clear(pmdp); in hash__pmdp_collapse_flush() [all …]
|
| A D | radix_pgtable.c | 78 pmd_t *pmdp; in early_map_kernel_page() local 100 ptep = pmdp_ptep(pmdp); in early_map_kernel_page() 130 pmd_t *pmdp; in __map_kernel_page() local 160 if (!pmdp) in __map_kernel_page() 163 ptep = pmdp_ptep(pmdp); in __map_kernel_page() 191 pmd_t *pmdp; in radix__change_memory_range() local 211 if (!pmdp) in radix__change_memory_range() 939 WARN_ON(!radix__pmd_trans_huge(*pmdp) && !pmd_devmap(*pmdp)); in radix__pmd_hugepage_update() 950 pmd_t *pmdp) in radix__pmdp_collapse_flush() argument 961 pmd = *pmdp; in radix__pmdp_collapse_flush() [all …]
|
| A D | pgtable.c | 39 pmd_t *pmdp, pmd_t entry, int dirty) in pmdp_set_access_flags() argument 43 WARN_ON(!pmd_trans_huge(*pmdp) && !pmd_devmap(*pmdp)); in pmdp_set_access_flags() 46 changed = !pmd_same(*(pmdp), entry); in pmdp_set_access_flags() 52 __ptep_set_access_flags(vma, pmdp_ptep(pmdp), in pmdp_set_access_flags() 59 unsigned long address, pmd_t *pmdp) in pmdp_test_and_clear_young() argument 68 pmd_t *pmdp, pmd_t pmd) in set_pmd_at() argument 76 WARN_ON(pte_hw_valid(pmd_pte(*pmdp)) && !pte_protnone(pmd_pte(*pmdp))); in set_pmd_at() 77 assert_spin_locked(pmd_lockptr(mm, pmdp)); in set_pmd_at() 114 pmd_t *pmdp) in pmdp_invalidate() argument 128 VM_BUG_ON((pmd_present(*pmdp) && !pmd_trans_huge(*pmdp) && in pmdp_huge_get_and_clear_full() [all …]
|
| A D | hash_hugepage.c | 22 pmd_t *pmdp, unsigned long trap, unsigned long flags, in __hash_page_thp() argument 36 pmd_t pmd = READ_ONCE(*pmdp); in __hash_page_thp() 52 } while (!pmd_xchg(pmdp, __pmd(old_pmd), __pmd(new_pmd))); in __hash_page_thp() 80 hpte_slot_array = get_hpte_slot_array(pmdp); in __hash_page_thp() 88 flush_hash_hugepage(vsid, ea, pmdp, MMU_PAGE_64K, in __hash_page_thp() 165 *pmdp = __pmd(old_pmd); in __hash_page_thp() 189 *pmdp = __pmd(new_pmd & ~H_PAGE_BUSY); in __hash_page_thp()
|
| /linux/arch/powerpc/mm/nohash/ |
| A D | book3e_pgtable.c | 78 pmd_t *pmdp; in map_kernel_page() local 88 pmdp = pmd_alloc(&init_mm, pudp, ea); in map_kernel_page() 89 if (!pmdp) in map_kernel_page() 91 ptep = pte_alloc_kernel(pmdp, ea); in map_kernel_page() 98 pmdp = early_alloc_pgtable(PMD_TABLE_SIZE); in map_kernel_page() 99 p4d_populate(&init_mm, p4dp, pmdp); in map_kernel_page() 104 pud_populate(&init_mm, pudp, pmdp); in map_kernel_page() 106 pmdp = pmd_offset(pudp, ea); in map_kernel_page() 107 if (!pmd_present(*pmdp)) { in map_kernel_page() 109 pmd_populate_kernel(&init_mm, pmdp, ptep); in map_kernel_page() [all …]
|
| A D | 40x.c | 102 pmd_t *pmdp; in mmu_mapin_ram() local 105 pmdp = pmd_off_k(v); in mmu_mapin_ram() 106 *pmdp++ = __pmd(val); in mmu_mapin_ram() 107 *pmdp++ = __pmd(val); in mmu_mapin_ram() 108 *pmdp++ = __pmd(val); in mmu_mapin_ram() 109 *pmdp++ = __pmd(val); in mmu_mapin_ram() 117 pmd_t *pmdp; in mmu_mapin_ram() local 120 pmdp = pmd_off_k(v); in mmu_mapin_ram() 121 *pmdp = __pmd(val); in mmu_mapin_ram()
|
| A D | 8xx.c | 59 static pte_t __init *early_hugepd_alloc_kernel(hugepd_t *pmdp, unsigned long va) in early_hugepd_alloc_kernel() argument 61 if (hpd_val(*pmdp) == 0) { in early_hugepd_alloc_kernel() 67 hugepd_populate_kernel((hugepd_t *)pmdp, ptep, PAGE_SHIFT_8M); in early_hugepd_alloc_kernel() 68 hugepd_populate_kernel((hugepd_t *)pmdp + 1, ptep, PAGE_SHIFT_8M); in early_hugepd_alloc_kernel() 70 return hugepte_offset(*(hugepd_t *)pmdp, va, PGDIR_SHIFT); in early_hugepd_alloc_kernel() 76 pmd_t *pmdp = pmd_off_k(va); in __early_map_kernel_hugepage() local 87 ptep = early_pte_alloc_kernel(pmdp, va); in __early_map_kernel_hugepage() 89 ptep = early_hugepd_alloc_kernel((hugepd_t *)pmdp, va); in __early_map_kernel_hugepage() 92 ptep = pte_offset_kernel(pmdp, va); in __early_map_kernel_hugepage() 94 ptep = hugepte_offset(*(hugepd_t *)pmdp, va, PGDIR_SHIFT); in __early_map_kernel_hugepage()
|
| /linux/arch/arm64/include/asm/ |
| A D | pgalloc.h | 23 static inline void __pud_populate(pud_t *pudp, phys_addr_t pmdp, pudval_t prot) in __pud_populate() argument 25 set_pud(pudp, __pud(__phys_to_pud_val(pmdp) | prot)); in __pud_populate() 28 static inline void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmdp) in pud_populate() argument 33 __pud_populate(pudp, __pa(pmdp), pudval); in pud_populate() 36 static inline void __pud_populate(pud_t *pudp, phys_addr_t pmdp, pudval_t prot) in __pud_populate() argument 66 static inline void __pmd_populate(pmd_t *pmdp, phys_addr_t ptep, in __pmd_populate() argument 69 set_pmd(pmdp, __pmd(__phys_to_pmd_val(ptep) | prot)); in __pmd_populate() 77 pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmdp, pte_t *ptep) in pmd_populate_kernel() argument 80 __pmd_populate(pmdp, __pa(ptep), PMD_TYPE_TABLE | PMD_TABLE_UXN); in pmd_populate_kernel() 84 pmd_populate(struct mm_struct *mm, pmd_t *pmdp, pgtable_t ptep) in pmd_populate() argument [all …]
|
| /linux/arch/s390/mm/ |
| A D | pageattr.c | 144 pmd_t new = *pmdp; in modify_pmd_page() 162 pmd_t *pmdp; in walk_pmd_level() local 165 pmdp = pmd_offset(pudp, addr); in walk_pmd_level() 167 if (pmd_none(*pmdp)) in walk_pmd_level() 170 if (pmd_large(*pmdp)) { in walk_pmd_level() 175 rc = split_pmd_page(pmdp, addr); in walk_pmd_level() 186 pmdp++; in walk_pmd_level() 196 pmd_t *pm_dir, *pmdp; in split_pud_page() local 209 pmdp = pm_dir; in split_pud_page() 211 pmd_val(*pmdp) = pmd_addr | prot; in split_pud_page() [all …]
|
| A D | pgtable.c | 385 __pmdp_csp(pmdp); in pmdp_idte_global() 396 old = *pmdp; in pmdp_flush_direct() 414 old = *pmdp; in pmdp_flush_lazy() 472 *pmdp = new; in pmdp_xchg_direct() 485 *pmdp = new; in pmdp_xchg_lazy() 792 pmd_t *pmdp; in set_guest_storage_key() local 814 if (pmd_large(*pmdp)) { in set_guest_storage_key() 900 pmd_t *pmdp; in reset_guest_reference_bit() local 923 if (pmd_large(*pmdp)) { in reset_guest_reference_bit() 961 pmd_t *pmdp; in get_guest_storage_key() local [all …]
|
| A D | gmap.c | 917 pmd_t *pmdp; in gmap_pmd_op_walk() local 921 if (!pmdp) in gmap_pmd_op_walk() 926 return pmd_none(*pmdp) ? NULL : pmdp; in gmap_pmd_op_walk() 937 return pmdp; in gmap_pmd_op_walk() 1050 pmd_t *pmdp; in gmap_protect_range() local 1057 if (pmdp) { in gmap_protect_range() 2305 *pmdp = new; in gmap_pmdp_xchg() 2311 pmd_t *pmdp; in gmap_pmdp_clear() local 2320 if (pmdp) { in gmap_pmdp_clear() 2366 pmd_t *pmdp; in gmap_pmdp_idte_local() local [all …]
|
| /linux/arch/sparc/mm/ |
| A D | tlb.c | 219 pmd_t *pmdp, pmd_t pmd) in set_pmd_at() argument 221 pmd_t orig = *pmdp; in set_pmd_at() 223 *pmdp = pmd; in set_pmd_at() 228 unsigned long address, pmd_t *pmdp, pmd_t pmd) in pmdp_establish() argument 233 old = *pmdp; in pmdp_establish() 244 pmd_t *pmdp) in pmdp_invalidate() argument 248 entry = __pmd(pmd_val(*pmdp) & ~_PAGE_VALID); in pmdp_invalidate() 272 if (!pmd_huge_pte(mm, pmdp)) in pgtable_trans_huge_deposit() 276 pmd_huge_pte(mm, pmdp) = pgtable; in pgtable_trans_huge_deposit() 287 pgtable = pmd_huge_pte(mm, pmdp); in pgtable_trans_huge_withdraw() [all …]
|
| /linux/arch/arm64/mm/ |
| A D | mmu.c | 224 pmd_t *pmdp; in init_pmd() local 756 pmd_t *pmdp, pmd; in kern_addr_valid() local 857 pmd_t *pmdp, pmd; in unmap_hotplug_pmd_range() local 995 pmd_clear(pmdp); in free_empty_pte_table() 1004 pmd_t *pmdp, pmd; in free_empty_pmd_table() local 1134 pmd_t *pmdp; in vmemmap_populate() local 1220 pmd_t *pmdp; in early_fixmap_init() local 1383 pmd_clear(pmdp); in pmd_clear_huge() 1400 pmd_clear(pmdp); in pmd_free_pte_page() 1409 pmd_t *pmdp; in pud_free_pmd_page() local [all …]
|
| A D | hugetlbpage.c | 110 pmd_t *pmdp; in find_num_contig() local 115 pmdp = pmd_offset(pudp, addr); in find_num_contig() 116 if ((pte_t *)pmdp == ptep) { in find_num_contig() 265 pmd_t *pmdp; in huge_pte_alloc() local 277 pmdp = pmd_alloc(mm, pudp, addr); in huge_pte_alloc() 278 if (!pmdp) in huge_pte_alloc() 298 return (pte_t *)pmdp; in huge_pte_alloc() 310 pmd_t *pmdp, pmd; in huge_pte_offset() local 332 pmdp = pmd_offset(pudp, addr); in huge_pte_offset() 333 pmd = READ_ONCE(*pmdp); in huge_pte_offset() [all …]
|
| A D | kasan_init.c | 62 static pte_t *__init kasan_pte_offset(pmd_t *pmdp, unsigned long addr, int node, in kasan_pte_offset() argument 65 if (pmd_none(READ_ONCE(*pmdp))) { in kasan_pte_offset() 69 __pmd_populate(pmdp, pte_phys, PMD_TYPE_TABLE); in kasan_pte_offset() 72 return early ? pte_offset_kimg(pmdp, addr) in kasan_pte_offset() 73 : pte_offset_kernel(pmdp, addr); in kasan_pte_offset() 102 static void __init kasan_pte_populate(pmd_t *pmdp, unsigned long addr, in kasan_pte_populate() argument 106 pte_t *ptep = kasan_pte_offset(pmdp, addr, node, early); in kasan_pte_populate() 123 pmd_t *pmdp = kasan_pmd_offset(pudp, addr, node, early); in kasan_pmd_populate() local 127 kasan_pte_populate(pmdp, addr, next, node, early); in kasan_pmd_populate() 128 } while (pmdp++, addr = next, addr != end && pmd_none(READ_ONCE(*pmdp))); in kasan_pmd_populate()
|
| /linux/arch/arm/include/asm/ |
| A D | pgalloc.h | 107 static inline void __pmd_populate(pmd_t *pmdp, phys_addr_t pte, in __pmd_populate() argument 111 pmdp[0] = __pmd(pmdval); in __pmd_populate() 113 pmdp[1] = __pmd(pmdval + 256 * sizeof(pte_t)); in __pmd_populate() 115 flush_pmd_entry(pmdp); in __pmd_populate() 125 pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmdp, pte_t *ptep) in pmd_populate_kernel() argument 130 __pmd_populate(pmdp, __pa(ptep), _PAGE_KERNEL_TABLE); in pmd_populate_kernel() 134 pmd_populate(struct mm_struct *mm, pmd_t *pmdp, pgtable_t ptep) in pmd_populate() argument 144 __pmd_populate(pmdp, page_to_phys(ptep), prot); in pmd_populate()
|
| /linux/include/linux/ |
| A D | pgtable.h | 217 pmd_t *pmdp) in pmdp_test_and_clear_young() argument 219 pmd_t pmd = *pmdp; in pmdp_test_and_clear_young() 230 pmd_t *pmdp) in pmdp_test_and_clear_young() argument 338 pmd_t *pmdp) in pmdp_huge_get_and_clear() argument 340 pmd_t pmd = *pmdp; in pmdp_huge_get_and_clear() 341 pmd_clear(pmdp); in pmdp_huge_get_and_clear() 526 pmd_t *pmdp) in pmdp_collapse_flush() argument 529 return *pmdp; in pmdp_collapse_flush() 561 pmd_t *pmdp); 651 WARN_ON_ONCE(pmd_present(*pmdp) && !pmd_same(*pmdp, pmd)); \ [all …]
|
| /linux/arch/powerpc/include/asm/nohash/32/ |
| A D | pgalloc.h | 17 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmdp, in pmd_populate_kernel() argument 21 *pmdp = __pmd((unsigned long)pte | _PMD_PRESENT); in pmd_populate_kernel() 23 *pmdp = __pmd(__pa(pte) | _PMD_PRESENT); in pmd_populate_kernel() 26 static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmdp, in pmd_populate() argument 30 *pmdp = __pmd((unsigned long)pte_page | _PMD_PRESENT); in pmd_populate() 32 *pmdp = __pmd(__pa(pte_page) | _PMD_USER | _PMD_PRESENT); in pmd_populate()
|
| /linux/arch/x86/include/asm/ |
| A D | pgtable-3level.h | 75 static inline pmd_t pmd_read_atomic(pmd_t *pmdp) in pmd_read_atomic() argument 78 u32 *tmp = (u32 *)pmdp; in pmd_read_atomic() 98 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd) in native_set_pmd() argument 100 set_64bit((unsigned long long *)(pmdp), native_pmd_val(pmd)); in native_set_pmd() 174 static inline pmd_t native_pmdp_get_and_clear(pmd_t *pmdp) in native_pmdp_get_and_clear() argument 176 union split_pmd res, *orig = (union split_pmd *)pmdp; in native_pmdp_get_and_clear() 192 unsigned long address, pmd_t *pmdp, pmd_t pmd) in pmdp_establish() argument 204 ptr = (union split_pmd *)pmdp; in pmdp_establish() 216 old = *pmdp; in pmdp_establish() 217 } while (cmpxchg64(&pmdp->pmd, old.pmd, pmd.pmd) != old.pmd); in pmdp_establish()
|
| /linux/arch/riscv/include/asm/ |
| A D | pgtable.h | 215 *pmdp = pmd; in set_pmd() 218 static inline void pmd_clear(pmd_t *pmdp) in pmd_clear() argument 220 set_pmd(pmdp, __pmd(0)); in pmd_clear() 395 unsigned long address, pmd_t *pmdp) in update_mmu_cache_pmd() argument 397 pte_t *ptep = (pte_t *)pmdp; in update_mmu_cache_pmd() 572 pmd_t *pmdp, pmd_t pmd) in set_pmd_at() argument 591 unsigned long address, pmd_t *pmdp, in pmdp_set_access_flags() argument 599 unsigned long address, pmd_t *pmdp) in pmdp_test_and_clear_young() argument 606 unsigned long address, pmd_t *pmdp) in pmdp_huge_get_and_clear() argument 613 unsigned long address, pmd_t *pmdp) in pmdp_set_wrprotect() argument [all …]
|
| /linux/arch/powerpc/include/asm/book3s/64/ |
| A D | pgtable.h | 900 static inline void pmd_clear(pmd_t *pmdp) in pmd_clear() argument 909 *pmdp = __pmd(0); in pmd_clear() 1187 pmd_t *pmdp, pmd_t pmd); 1237 pmd_t *pmdp) in pmdp_set_wrprotect() argument 1239 if (__pmd_write((*pmdp))) in pmdp_set_wrprotect() 1298 unsigned long address, pmd_t *pmdp, 1307 unsigned long addr, pmd_t *pmdp) in pmdp_huge_get_and_clear() argument 1315 unsigned long address, pmd_t *pmdp) in pmdp_collapse_flush() argument 1326 pmd_t *pmdp, int full); 1339 pmd_t *pmdp) in pgtable_trans_huge_withdraw() argument [all …]
|
| A D | hash-4k.h | 109 static inline char *get_hpte_slot_array(pmd_t *pmdp) in get_hpte_slot_array() argument 152 unsigned long addr, pmd_t *pmdp, 155 unsigned long address, pmd_t *pmdp); 156 extern void hash__pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, 158 extern pgtable_t hash__pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp); 160 unsigned long addr, pmd_t *pmdp);
|
| /linux/arch/s390/include/asm/ |
| A D | pgtable.h | 1473 csp((unsigned int *)pmdp + 1, pmd_val(*pmdp), in __pmdp_csp() 1495 : "+m" (*pmdp) in __pmdp_idte() 1503 : "+m" (*pmdp) in __pmdp_idte() 1552 unsigned long addr, pmd_t *pmdp, in pmdp_set_access_flags() argument 1570 pmd_t pmd = *pmdp; in pmdp_test_and_clear_young() 1585 pmd_t *pmdp, pmd_t entry) in set_pmd_at() argument 1589 *pmdp = entry; in set_pmd_at() 1610 pmd_t *pmdp, int full) in pmdp_huge_get_and_clear_full() argument 1613 pmd_t pmd = *pmdp; in pmdp_huge_get_and_clear_full() 1640 pmd_t pmd = *pmdp; in pmdp_set_wrprotect() [all …]
|
| /linux/arch/powerpc/mm/ |
| A D | pgtable_32.c | 42 pmd_t *pmdp = pmd_off_k(addr); in early_ioremap_init() local 45 addr += PGDIR_SIZE, ptep += PTRS_PER_PTE, pmdp++) in early_ioremap_init() 46 pmd_populate_kernel(&init_mm, pmdp, ptep); in early_ioremap_init() 62 pte_t __init *early_pte_alloc_kernel(pmd_t *pmdp, unsigned long va) in early_pte_alloc_kernel() argument 64 if (pmd_none(*pmdp)) { in early_pte_alloc_kernel() 67 pmd_populate_kernel(&init_mm, pmdp, ptep); in early_pte_alloc_kernel() 69 return pte_offset_kernel(pmdp, va); in early_pte_alloc_kernel()
|