/kernel/linux/linux-5.10/mm/ |
H A D | pgtable-generic.c | 106 unsigned long address, pmd_t *pmdp, in pmdp_set_access_flags() 109 int changed = !pmd_same(*pmdp, entry); in pmdp_set_access_flags() 112 set_pmd_at(vma->vm_mm, address, pmdp, entry); in pmdp_set_access_flags() 121 unsigned long address, pmd_t *pmdp) in pmdp_clear_flush_young() 125 young = pmdp_test_and_clear_young(vma, address, pmdp); in pmdp_clear_flush_young() 134 pmd_t *pmdp) in pmdp_huge_clear_flush() 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() 140 pmd = pmdp_huge_get_and_clear(vma->vm_mm, address, pmdp); in pmdp_huge_clear_flush() 105 pmdp_set_access_flags(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp, pmd_t entry, int dirty) pmdp_set_access_flags() argument 120 pmdp_clear_flush_young(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) pmdp_clear_flush_young() argument 133 pmdp_huge_clear_flush(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) pmdp_huge_clear_flush() argument 161 pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, pgtable_t pgtable) pgtable_trans_huge_deposit() argument 177 pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp) pgtable_trans_huge_withdraw() argument 194 pmdp_invalidate(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) pmdp_invalidate() argument 204 pmdp_collapse_flush(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) pmdp_collapse_flush() argument [all...] |
/kernel/linux/linux-5.10/arch/powerpc/mm/book3s64/ |
H A D | hash_pgtable.c | 151 pmd_t *pmdp; in hash__map_kernel_page() local 161 pmdp = pmd_alloc(&init_mm, pudp, ea); in hash__map_kernel_page() 162 if (!pmdp) in hash__map_kernel_page() 164 ptep = pte_alloc_kernel(pmdp, ea); in hash__map_kernel_page() 190 pmd_t *pmdp, unsigned long clr, in hash__pmd_hugepage_update() 197 WARN_ON(!hash__pmd_trans_huge(*pmdp) && !pmd_devmap(*pmdp)); in hash__pmd_hugepage_update() 198 assert_spin_locked(pmd_lockptr(mm, pmdp)); in hash__pmd_hugepage_update() 209 : "=&r" (old_be), "=&r" (tmp), "=m" (*pmdp) in hash__pmd_hugepage_update() 210 : "r" (pmdp), " in hash__pmd_hugepage_update() 189 hash__pmd_hugepage_update(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp, unsigned long clr, unsigned long set) hash__pmd_hugepage_update() argument 222 hash__pmdp_collapse_flush(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) hash__pmdp_collapse_flush() argument 266 hash__pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, pgtable_t pgtable) hash__pgtable_trans_huge_deposit() argument 286 hash__pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp) hash__pgtable_trans_huge_withdraw() argument 311 hpte_do_hugepage_flush(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp, unsigned long old_pmd) hpte_do_hugepage_flush() argument 344 hash__pmdp_huge_get_and_clear(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp) hash__pmdp_huge_get_and_clear() argument [all...] |
H A D | pgtable.c | 37 pmd_t *pmdp, pmd_t entry, int dirty) in pmdp_set_access_flags() 41 WARN_ON(!pmd_trans_huge(*pmdp) && !pmd_devmap(*pmdp)); in pmdp_set_access_flags() 42 assert_spin_locked(pmd_lockptr(vma->vm_mm, pmdp)); in pmdp_set_access_flags() 44 changed = !pmd_same(*(pmdp), entry); in pmdp_set_access_flags() 50 __ptep_set_access_flags(vma, pmdp_ptep(pmdp), in pmdp_set_access_flags() 57 unsigned long address, pmd_t *pmdp) in pmdp_test_and_clear_young() 59 return __pmdp_test_and_clear_young(vma->vm_mm, address, pmdp); in pmdp_test_and_clear_young() 66 pmd_t *pmdp, pmd_t pmd) in set_pmd_at() 74 WARN_ON(pte_hw_valid(pmd_pte(*pmdp)) in set_pmd_at() 36 pmdp_set_access_flags(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp, pmd_t entry, int dirty) pmdp_set_access_flags() argument 56 pmdp_test_and_clear_young(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) pmdp_test_and_clear_young() argument 65 set_pmd_at(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp, pmd_t pmd) set_pmd_at() argument 106 pmdp_invalidate(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) pmdp_invalidate() argument 116 pmdp_huge_get_and_clear_full(struct vm_area_struct *vma, unsigned long addr, pmd_t *pmdp, int full) pmdp_huge_get_and_clear_full() argument [all...] |
H A D | radix_pgtable.c | 77 pmd_t *pmdp; in early_map_kernel_page() local 93 pmdp = early_alloc_pgtable(PAGE_SIZE, nid, region_start, in early_map_kernel_page() 95 pud_populate(&init_mm, pudp, pmdp); in early_map_kernel_page() 97 pmdp = pmd_offset(pudp, ea); in early_map_kernel_page() 99 ptep = pmdp_ptep(pmdp); in early_map_kernel_page() 102 if (!pmd_present(*pmdp)) { in early_map_kernel_page() 105 pmd_populate_kernel(&init_mm, pmdp, ptep); in early_map_kernel_page() 107 ptep = pte_offset_kernel(pmdp, ea); in early_map_kernel_page() 129 pmd_t *pmdp; in __map_kernel_page() local 158 pmdp in __map_kernel_page() 190 pmd_t *pmdp; radix__change_memory_range() local 978 radix__pmd_hugepage_update(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp, unsigned long clr, unsigned long set) radix__pmd_hugepage_update() argument 995 radix__pmdp_collapse_flush(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) radix__pmdp_collapse_flush() argument 1021 radix__pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, pgtable_t pgtable) radix__pgtable_trans_huge_deposit() argument 1036 radix__pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp) radix__pgtable_trans_huge_withdraw() argument 1060 radix__pmdp_huge_get_and_clear(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp) radix__pmdp_huge_get_and_clear() argument [all...] |
/kernel/linux/linux-6.6/arch/powerpc/mm/book3s64/ |
H A D | hash_pgtable.c | 152 pmd_t *pmdp; in hash__map_kernel_page() local 162 pmdp = pmd_alloc(&init_mm, pudp, ea); in hash__map_kernel_page() 163 if (!pmdp) in hash__map_kernel_page() 165 ptep = pte_alloc_kernel(pmdp, ea); in hash__map_kernel_page() 191 pmd_t *pmdp, unsigned long clr, in hash__pmd_hugepage_update() 198 WARN_ON(!hash__pmd_trans_huge(*pmdp) && !pmd_devmap(*pmdp)); in hash__pmd_hugepage_update() 199 assert_spin_locked(pmd_lockptr(mm, pmdp)); in hash__pmd_hugepage_update() 210 : "=&r" (old_be), "=&r" (tmp), "=m" (*pmdp) in hash__pmd_hugepage_update() 211 : "r" (pmdp), " in hash__pmd_hugepage_update() 190 hash__pmd_hugepage_update(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp, unsigned long clr, unsigned long set) hash__pmd_hugepage_update() argument 223 hash__pmdp_collapse_flush(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) hash__pmdp_collapse_flush() argument 267 hash__pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, pgtable_t pgtable) hash__pgtable_trans_huge_deposit() argument 287 hash__pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp) hash__pgtable_trans_huge_withdraw() argument 312 hpte_do_hugepage_flush(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp, unsigned long old_pmd) hpte_do_hugepage_flush() argument 345 hash__pmdp_huge_get_and_clear(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp) hash__pmdp_huge_get_and_clear() argument [all...] |
H A D | radix_pgtable.c | 79 pmd_t *pmdp; in early_map_kernel_page() local 95 pmdp = early_alloc_pgtable(PAGE_SIZE, nid, region_start, in early_map_kernel_page() 97 pud_populate(&init_mm, pudp, pmdp); in early_map_kernel_page() 99 pmdp = pmd_offset(pudp, ea); in early_map_kernel_page() 101 ptep = pmdp_ptep(pmdp); in early_map_kernel_page() 104 if (!pmd_present(*pmdp)) { in early_map_kernel_page() 107 pmd_populate_kernel(&init_mm, pmdp, ptep); in early_map_kernel_page() 109 ptep = pte_offset_kernel(pmdp, ea); in early_map_kernel_page() 131 pmd_t *pmdp; in __map_kernel_page() local 160 pmdp in __map_kernel_page() 192 pmd_t *pmdp; radix__change_memory_range() local 924 vmemmap_check_pmd(pmd_t *pmdp, int node, unsigned long addr, unsigned long next) vmemmap_check_pmd() argument 935 vmemmap_set_pmd(pmd_t *pmdp, void *p, int node, unsigned long addr, unsigned long next) vmemmap_set_pmd() argument 949 radix__vmemmap_pte_populate(pmd_t *pmdp, unsigned long addr, int node, struct vmem_altmap *altmap, struct page *reuse) radix__vmemmap_pte_populate() argument 1030 vmemmap_pte_alloc(pmd_t *pmdp, int node, unsigned long address) vmemmap_pte_alloc() argument 1358 radix__pmd_hugepage_update(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp, unsigned long clr, unsigned long set) radix__pmd_hugepage_update() argument 1392 radix__pmdp_collapse_flush(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) radix__pmdp_collapse_flush() argument 1418 radix__pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, pgtable_t pgtable) radix__pgtable_trans_huge_deposit() argument 1433 radix__pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp) radix__pgtable_trans_huge_withdraw() argument 1457 radix__pmdp_huge_get_and_clear(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp) radix__pmdp_huge_get_and_clear() argument [all...] |
/kernel/linux/linux-6.6/mm/ |
H A D | pgtable-generic.c | 110 unsigned long address, pmd_t *pmdp, in pmdp_set_access_flags() 113 int changed = !pmd_same(*pmdp, entry); in pmdp_set_access_flags() 116 set_pmd_at(vma->vm_mm, address, pmdp, entry); in pmdp_set_access_flags() 125 unsigned long address, pmd_t *pmdp) in pmdp_clear_flush_young() 129 young = pmdp_test_and_clear_young(vma, address, pmdp); in pmdp_clear_flush_young() 138 pmd_t *pmdp) in pmdp_huge_clear_flush() 142 VM_BUG_ON(pmd_present(*pmdp) && !pmd_trans_huge(*pmdp) && in pmdp_huge_clear_flush() 143 !pmd_devmap(*pmdp)); in pmdp_huge_clear_flush() 144 pmd = pmdp_huge_get_and_clear(vma->vm_mm, address, pmdp); in pmdp_huge_clear_flush() 109 pmdp_set_access_flags(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp, pmd_t entry, int dirty) pmdp_set_access_flags() argument 124 pmdp_clear_flush_young(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) pmdp_clear_flush_young() argument 137 pmdp_huge_clear_flush(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) pmdp_huge_clear_flush() argument 165 pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, pgtable_t pgtable) pgtable_trans_huge_deposit() argument 181 pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp) pgtable_trans_huge_withdraw() argument 198 pmdp_invalidate(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) pmdp_invalidate() argument 208 pmdp_invalidate_ad(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) pmdp_invalidate_ad() argument 216 pmdp_collapse_flush(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) pmdp_collapse_flush() argument [all...] |
/kernel/linux/linux-5.10/arch/arm64/include/asm/ |
H 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 30 __pud_populate(pudp, __pa(pmdp), PMD_TYPE_TABLE); in pud_populate() 33 static inline void __pud_populate(pud_t *pudp, phys_addr_t pmdp, pudval_t prot) in __pud_populate() argument 60 static inline void __pmd_populate(pmd_t *pmdp, phys_addr_t ptep, in __pmd_populate() argument 63 set_pmd(pmdp, __pmd(__phys_to_pmd_val(ptep) | prot)); in __pmd_populate() 67 * Populate the pmdp entry with a pointer to the pte. This pmd is part 71 pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmdp, pte_t *ptep) in pmd_populate_kernel() argument 76 __pmd_populate(pmdp, __p in pmd_populate_kernel() 80 pmd_populate(struct mm_struct *mm, pmd_t *pmdp, pgtable_t ptep) pmd_populate() argument [all...] |
/kernel/linux/linux-6.6/arch/arm64/include/asm/ |
H 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() 73 * Populate the pmdp entry with a pointer to the pte. This pmd is part 77 pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmdp, pte_t *ptep) in pmd_populate_kernel() argument 80 __pmd_populate(pmdp, __p in pmd_populate_kernel() 84 pmd_populate(struct mm_struct *mm, pmd_t *pmdp, pgtable_t ptep) pmd_populate() argument [all...] |
/kernel/linux/linux-5.10/arch/s390/mm/ |
H A D | pageattr.c | 83 static int walk_pte_level(pmd_t *pmdp, unsigned long addr, unsigned long end, in walk_pte_level() argument 88 ptep = pte_offset_kernel(pmdp, addr); in walk_pte_level() 109 static int split_pmd_page(pmd_t *pmdp, unsigned long addr) in split_pmd_page() argument 119 pte_addr = pmd_pfn(*pmdp) << PAGE_SHIFT; in split_pmd_page() 120 ro = !!(pmd_val(*pmdp) & _SEGMENT_ENTRY_PROTECT); in split_pmd_page() 121 nx = !!(pmd_val(*pmdp) & _SEGMENT_ENTRY_NOEXEC); in split_pmd_page() 132 pgt_set((unsigned long *)pmdp, pmd_val(new), addr, CRDTE_DTT_SEGMENT); in split_pmd_page() 138 static void modify_pmd_page(pmd_t *pmdp, unsigned long addr, in modify_pmd_page() argument 141 pmd_t new = *pmdp; in modify_pmd_page() 151 pgt_set((unsigned long *)pmdp, pmd_va in modify_pmd_page() 158 pmd_t *pmdp; walk_pmd_level() local 189 pmd_t *pm_dir, *pmdp; split_pud_page() local [all...] |
H A D | pgtable.c | 361 unsigned long addr, pmd_t *pmdp) in pmdp_idte_local() 364 __pmdp_idte(addr, pmdp, IDTE_NODAT | IDTE_GUEST_ASCE, in pmdp_idte_local() 367 __pmdp_idte(addr, pmdp, 0, 0, IDTE_LOCAL); in pmdp_idte_local() 373 unsigned long addr, pmd_t *pmdp) in pmdp_idte_global() 376 __pmdp_idte(addr, pmdp, IDTE_NODAT | IDTE_GUEST_ASCE, in pmdp_idte_global() 381 __pmdp_idte(addr, pmdp, 0, 0, IDTE_GLOBAL); in pmdp_idte_global() 385 __pmdp_csp(pmdp); in pmdp_idte_global() 392 unsigned long addr, pmd_t *pmdp) in pmdp_flush_direct() 396 old = *pmdp; in pmdp_flush_direct() 402 pmdp_idte_local(mm, addr, pmdp); in pmdp_flush_direct() 360 pmdp_idte_local(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp) pmdp_idte_local() argument 372 pmdp_idte_global(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp) pmdp_idte_global() argument 391 pmdp_flush_direct(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp) pmdp_flush_direct() argument 409 pmdp_flush_lazy(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp) pmdp_flush_lazy() argument 451 pmdp_xchg_direct(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp, pmd_t new) pmdp_xchg_direct() argument 464 pmdp_xchg_lazy(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp, pmd_t new) pmdp_xchg_lazy() argument 535 pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, pgtable_t pgtable) pgtable_trans_huge_deposit() argument 550 pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp) pgtable_trans_huge_withdraw() argument 778 pmd_t *pmdp; set_guest_storage_key() local 880 pmd_t *pmdp; reset_guest_reference_bit() local 935 pmd_t *pmdp; get_guest_storage_key() local [all...] |
/kernel/linux/linux-5.10/arch/arm64/mm/ |
H A D | mmu.c | 154 static void init_pte(pmd_t *pmdp, unsigned long addr, unsigned long end, in init_pte() argument 159 ptep = pte_set_fixmap_offset(pmdp, addr); in init_pte() 178 static void alloc_init_cont_pte(pmd_t *pmdp, unsigned long addr, in alloc_init_cont_pte() argument 185 pmd_t pmd = READ_ONCE(*pmdp); in alloc_init_cont_pte() 192 __pmd_populate(pmdp, pte_phys, PMD_TYPE_TABLE); in alloc_init_cont_pte() 193 pmd = READ_ONCE(*pmdp); in alloc_init_cont_pte() 207 init_pte(pmdp, addr, next, phys, __prot); in alloc_init_cont_pte() 218 pmd_t *pmdp; in init_pmd() local 220 pmdp = pmd_set_fixmap_offset(pudp, addr); in init_pmd() 222 pmd_t old_pmd = READ_ONCE(*pmdp); in init_pmd() 776 pmd_t *pmdp, pmd; kern_addr_valid() local 851 unmap_hotplug_pte_range(pmd_t *pmdp, unsigned long addr, unsigned long end, bool free_mapped, struct vmem_altmap *altmap) unmap_hotplug_pte_range() argument 877 pmd_t *pmdp, pmd; unmap_hotplug_pmd_range() local 983 free_empty_pte_table(pmd_t *pmdp, unsigned long addr, unsigned long end, unsigned long floor, unsigned long ceiling) free_empty_pte_table() argument 1024 pmd_t *pmdp, pmd; free_empty_pmd_table() local 1154 pmd_t *pmdp; vmemmap_populate() local 1236 pmd_t *pmdp; early_fixmap_init() local 1394 pmd_set_huge(pmd_t *pmdp, phys_addr_t phys, pgprot_t prot) pmd_set_huge() argument 1416 pmd_clear_huge(pmd_t *pmdp) pmd_clear_huge() argument 1424 pmd_free_pte_page(pmd_t *pmdp, unsigned long addr) pmd_free_pte_page() argument 1446 pmd_t *pmdp; pud_free_pmd_page() local [all...] |
/kernel/linux/linux-6.6/arch/x86/include/asm/ |
H A D | pgtable-3level.h | 48 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd) in native_set_pmd() argument 50 pxx_xchg64(pmd, pmdp, native_pmd_val(pmd)); in native_set_pmd() 74 static inline void native_pmd_clear(pmd_t *pmdp) in native_pmd_clear() argument 76 WRITE_ONCE(pmdp->pmd_low, 0); in native_pmd_clear() 78 WRITE_ONCE(pmdp->pmd_high, 0); in native_pmd_clear() 108 static inline pmd_t native_pmdp_get_and_clear(pmd_t *pmdp) in native_pmdp_get_and_clear() argument 110 return pxx_xchg64(pmd, pmdp, 0ULL); in native_pmdp_get_and_clear() 126 unsigned long address, pmd_t *pmdp, pmd_t pmd) in pmdp_establish() 132 * cmpxchg64: we can update pmdp half-by-half without racing with in pmdp_establish() 137 old.pmd_low = xchg(&pmdp in pmdp_establish() 125 pmdp_establish(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp, pmd_t pmd) pmdp_establish() argument [all...] |
/kernel/linux/linux-5.10/arch/powerpc/mm/nohash/ |
H 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() 103 pmdp = early_alloc_pgtable(PMD_TABLE_SIZE); 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() 111 ptep = pte_offset_kernel(pmdp, e in map_kernel_page() [all...] |
H 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()
|
/kernel/linux/linux-6.6/arch/powerpc/mm/nohash/ |
H A D | book3e_pgtable.c | 79 pmd_t *pmdp; in map_kernel_page() local 89 pmdp = pmd_alloc(&init_mm, pudp, ea); in map_kernel_page() 90 if (!pmdp) in map_kernel_page() 92 ptep = pte_alloc_kernel(pmdp, ea); in map_kernel_page() 104 pmdp = early_alloc_pgtable(PMD_TABLE_SIZE); in map_kernel_page() 105 pud_populate(&init_mm, pudp, pmdp); in map_kernel_page() 107 pmdp = pmd_offset(pudp, ea); in map_kernel_page() 108 if (!pmd_present(*pmdp)) { in map_kernel_page() 110 pmd_populate_kernel(&init_mm, pmdp, ptep); in map_kernel_page() 112 ptep = pte_offset_kernel(pmdp, e in map_kernel_page() [all...] |
H A D | 40x.c | 106 pmd_t *pmdp; in mmu_mapin_ram() local 109 pmdp = pmd_off_k(v); in mmu_mapin_ram() 110 *pmdp++ = __pmd(val); in mmu_mapin_ram() 111 *pmdp++ = __pmd(val); in mmu_mapin_ram() 112 *pmdp++ = __pmd(val); in mmu_mapin_ram() 113 *pmdp++ = __pmd(val); in mmu_mapin_ram() 121 pmd_t *pmdp; in mmu_mapin_ram() local 124 pmdp = pmd_off_k(v); in mmu_mapin_ram() 125 *pmdp = __pmd(val); in mmu_mapin_ram()
|
/kernel/linux/linux-6.6/include/linux/ |
H A D | pgtable.h | 258 unsigned long address, pmd_t *pmdp, 265 unsigned long address, pmd_t *pmdp, in pmdp_set_access_flags() 289 static inline pmd_t pmdp_get(pmd_t *pmdp) in pmdp_get() argument 291 return READ_ONCE(*pmdp); in pmdp_get() 314 pmd_t *pmdp) in pmdp_test_and_clear_young() 316 pmd_t pmd = *pmdp; in pmdp_test_and_clear_young() 321 set_pmd_at(vma->vm_mm, address, pmdp, pmd_mkold(pmd)); in pmdp_test_and_clear_young() 327 pmd_t *pmdp) in pmdp_test_and_clear_young() 343 unsigned long address, pmd_t *pmdp); 350 unsigned long address, pmd_t *pmdp) in pmdp_clear_flush_young() 264 pmdp_set_access_flags(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp, pmd_t entry, int dirty) pmdp_set_access_flags() argument 312 pmdp_test_and_clear_young(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) pmdp_test_and_clear_young() argument 325 pmdp_test_and_clear_young(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) pmdp_test_and_clear_young() argument 349 pmdp_clear_flush_young(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) pmdp_clear_flush_young() argument 459 pmdp_get_lockless(pmd_t *pmdp) pmdp_get_lockless() argument 488 pmdp_get_lockless(pmd_t *pmdp) pmdp_get_lockless() argument 499 pmdp_huge_get_and_clear(struct mm_struct *mm, unsigned long address, pmd_t *pmdp) pmdp_huge_get_and_clear() argument 528 pmdp_huge_get_and_clear_full(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp, int full) pmdp_huge_get_and_clear_full() argument 643 pmdp_set_wrprotect(struct mm_struct *mm, unsigned long address, pmd_t *pmdp) pmdp_set_wrprotect() argument 650 pmdp_set_wrprotect(struct mm_struct *mm, unsigned long address, pmd_t *pmdp) pmdp_set_wrprotect() argument 682 pmdp_collapse_flush(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) pmdp_collapse_flush() argument 712 generic_pmdp_establish(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp, pmd_t pmd) generic_pmdp_establish() argument [all...] |
/kernel/linux/linux-6.6/arch/s390/mm/ |
H A D | pgtable.c | 386 unsigned long addr, pmd_t *pmdp) in pmdp_idte_local() 389 __pmdp_idte(addr, pmdp, IDTE_NODAT | IDTE_GUEST_ASCE, in pmdp_idte_local() 392 __pmdp_idte(addr, pmdp, 0, 0, IDTE_LOCAL); in pmdp_idte_local() 398 unsigned long addr, pmd_t *pmdp) in pmdp_idte_global() 401 __pmdp_idte(addr, pmdp, IDTE_NODAT | IDTE_GUEST_ASCE, in pmdp_idte_global() 406 __pmdp_idte(addr, pmdp, 0, 0, IDTE_GLOBAL); in pmdp_idte_global() 410 __pmdp_csp(pmdp); in pmdp_idte_global() 417 unsigned long addr, pmd_t *pmdp) in pmdp_flush_direct() 421 old = *pmdp; in pmdp_flush_direct() 427 pmdp_idte_local(mm, addr, pmdp); in pmdp_flush_direct() 385 pmdp_idte_local(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp) pmdp_idte_local() argument 397 pmdp_idte_global(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp) pmdp_idte_global() argument 416 pmdp_flush_direct(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp) pmdp_flush_direct() argument 434 pmdp_flush_lazy(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp) pmdp_flush_lazy() argument 457 pmd_lookup(struct mm_struct *mm, unsigned long addr, pmd_t **pmdp) pmd_lookup() argument 490 pmdp_xchg_direct(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp, pmd_t new) pmdp_xchg_direct() argument 503 pmdp_xchg_lazy(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp, pmd_t new) pmdp_xchg_lazy() argument 574 pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, pgtable_t pgtable) pgtable_trans_huge_deposit() argument 589 pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp) pgtable_trans_huge_withdraw() argument 817 pmd_t *pmdp; set_guest_storage_key() local 927 pmd_t *pmdp; reset_guest_reference_bit() local 990 pmd_t *pmdp; get_guest_storage_key() local [all...] |
H A D | pageattr.c | 86 static int walk_pte_level(pmd_t *pmdp, unsigned long addr, unsigned long end, in walk_pte_level() argument 93 ptep = pte_offset_kernel(pmdp, addr); in walk_pte_level() 122 static int split_pmd_page(pmd_t *pmdp, unsigned long addr) in split_pmd_page() argument 132 pte_addr = pmd_pfn(*pmdp) << PAGE_SHIFT; in split_pmd_page() 133 ro = !!(pmd_val(*pmdp) & _SEGMENT_ENTRY_PROTECT); in split_pmd_page() 134 nx = !!(pmd_val(*pmdp) & _SEGMENT_ENTRY_NOEXEC); in split_pmd_page() 145 pgt_set((unsigned long *)pmdp, pmd_val(new), addr, CRDTE_DTT_SEGMENT); in split_pmd_page() 151 static void modify_pmd_page(pmd_t *pmdp, unsigned long addr, in modify_pmd_page() argument 154 pmd_t new = *pmdp; in modify_pmd_page() 172 pgt_set((unsigned long *)pmdp, pmd_va in modify_pmd_page() 180 pmd_t *pmdp; walk_pmd_level() local 214 pmd_t *pm_dir, *pmdp; split_pud_page() local [all...] |
/kernel/linux/linux-5.10/arch/sparc/mm/ |
H A D | tlb.c | 218 pmd_t *pmdp, pmd_t pmd) in set_pmd_at() 220 pmd_t orig = *pmdp; in set_pmd_at() 222 *pmdp = pmd; in set_pmd_at() 227 unsigned long address, pmd_t *pmdp, pmd_t pmd) in pmdp_establish() 232 old = *pmdp; in pmdp_establish() 233 } while (cmpxchg64(&pmdp->pmd, old.pmd, pmd.pmd) != old.pmd); in pmdp_establish() 243 pmd_t *pmdp) in pmdp_invalidate() 247 entry = __pmd(pmd_val(*pmdp) & ~_PAGE_VALID); in pmdp_invalidate() 248 old = pmdp_establish(vma, address, pmdp, entry); in pmdp_invalidate() 263 void pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, in pgtable_trans_huge_deposit() argument 217 set_pmd_at(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp, pmd_t pmd) set_pmd_at() argument 226 pmdp_establish(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp, pmd_t pmd) pmdp_establish() argument 242 pmdp_invalidate(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) pmdp_invalidate() argument 278 pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp) pgtable_trans_huge_withdraw() argument [all...] |
/kernel/linux/linux-6.6/arch/sparc/mm/ |
H A D | tlb.c | 223 pmd_t *pmdp, pmd_t pmd) in set_pmd_at() 225 pmd_t orig = *pmdp; in set_pmd_at() 227 *pmdp = pmd; in set_pmd_at() 232 unsigned long address, pmd_t *pmdp, pmd_t pmd) in pmdp_establish() 237 old = *pmdp; in pmdp_establish() 238 } while (cmpxchg64(&pmdp->pmd, old.pmd, pmd.pmd) != old.pmd); in pmdp_establish() 248 pmd_t *pmdp) in pmdp_invalidate() 252 entry = __pmd(pmd_val(*pmdp) & ~_PAGE_VALID); in pmdp_invalidate() 253 old = pmdp_establish(vma, address, pmdp, entry); in pmdp_invalidate() 268 void pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, in pgtable_trans_huge_deposit() argument 222 set_pmd_at(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp, pmd_t pmd) set_pmd_at() argument 231 pmdp_establish(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp, pmd_t pmd) pmdp_establish() argument 247 pmdp_invalidate(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) pmdp_invalidate() argument 283 pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp) pgtable_trans_huge_withdraw() argument [all...] |
/kernel/linux/linux-5.10/arch/powerpc/include/asm/nohash/32/ |
H 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()
|
/kernel/linux/linux-6.6/arch/powerpc/include/asm/nohash/32/ |
H 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()
|
/kernel/linux/linux-6.6/arch/arm64/mm/ |
H A D | mmu.c | 172 static void init_pte(pmd_t *pmdp, unsigned long addr, unsigned long end, in init_pte() argument 177 ptep = pte_set_fixmap_offset(pmdp, addr); in init_pte() 196 static void alloc_init_cont_pte(pmd_t *pmdp, unsigned long addr, in alloc_init_cont_pte() argument 203 pmd_t pmd = READ_ONCE(*pmdp); in alloc_init_cont_pte() 214 __pmd_populate(pmdp, pte_phys, pmdval); in alloc_init_cont_pte() 215 pmd = READ_ONCE(*pmdp); in alloc_init_cont_pte() 229 init_pte(pmdp, addr, next, phys, __prot); in alloc_init_cont_pte() 240 pmd_t *pmdp; in init_pmd() local 242 pmdp = pmd_set_fixmap_offset(pudp, addr); in init_pmd() 244 pmd_t old_pmd = READ_ONCE(*pmdp); in init_pmd() 849 unmap_hotplug_pte_range(pmd_t *pmdp, unsigned long addr, unsigned long end, bool free_mapped, struct vmem_altmap *altmap) unmap_hotplug_pte_range() argument 875 pmd_t *pmdp, pmd; unmap_hotplug_pmd_range() local 981 free_empty_pte_table(pmd_t *pmdp, unsigned long addr, unsigned long end, unsigned long floor, unsigned long ceiling) free_empty_pte_table() argument 1022 pmd_t *pmdp, pmd; free_empty_pmd_table() local 1136 vmemmap_set_pmd(pmd_t *pmdp, void *p, int node, unsigned long addr, unsigned long next) vmemmap_set_pmd() argument 1142 vmemmap_check_pmd(pmd_t *pmdp, int node, unsigned long addr, unsigned long next) vmemmap_check_pmd() argument 1185 pmd_set_huge(pmd_t *pmdp, phys_addr_t phys, pgprot_t prot) pmd_set_huge() argument 1207 pmd_clear_huge(pmd_t *pmdp) pmd_clear_huge() argument 1215 pmd_free_pte_page(pmd_t *pmdp, unsigned long addr) pmd_free_pte_page() argument 1237 pmd_t *pmdp; pud_free_pmd_page() local [all...] |