| /linux/mm/ |
| H A D | pgtable-generic.c | 112 unsigned long address, pmd_t *pmdp, in pmdp_set_access_flags() argument 115 int changed = !pmd_same(*pmdp, entry); in pmdp_set_access_flags() 118 set_pmd_at(vma->vm_mm, address, pmdp, entry); in pmdp_set_access_flags() 127 unsigned long address, pmd_t *pmdp) in pmdp_clear_flush_young() argument 131 young = pmdp_test_and_clear_young(vma, address, pmdp); in pmdp_clear_flush_young() 140 pmd_t *pmdp) in pmdp_huge_clear_flush() argument 144 VM_BUG_ON(pmd_present(*pmdp) && !pmd_trans_huge(*pmdp)); in pmdp_huge_clear_flush() 145 pmd = pmdp_huge_get_and_clear(vma->vm_mm, address, pmdp); in pmdp_huge_clear_flush() 166 void pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, in pgtable_trans_huge_deposit() argument 182 pgtable_trans_huge_withdraw(struct mm_struct * mm,pmd_t * pmdp) pgtable_trans_huge_withdraw() argument 200 pmdp_invalidate(struct vm_area_struct * vma,unsigned long address,pmd_t * pmdp) pmdp_invalidate() argument 211 pmdp_invalidate_ad(struct vm_area_struct * vma,unsigned long address,pmd_t * pmdp) pmdp_invalidate_ad() argument 220 pmdp_collapse_flush(struct vm_area_struct * vma,unsigned long address,pmd_t * pmdp) pmdp_collapse_flush() argument [all...] |
| H A D | migrate_device.c | 126 * @pmdp: pointer to pmd entry 132 * Collect the huge pmd entry at @pmdp for migration and set the 136 static int migrate_vma_collect_huge_pmd(pmd_t *pmdp, unsigned long start, in migrate_vma_collect_huge_pmd() argument 147 ptl = pmd_lock(mm, pmdp); in migrate_vma_collect_huge_pmd() 148 if (pmd_none(*pmdp)) { in migrate_vma_collect_huge_pmd() 153 if (pmd_trans_huge(*pmdp)) { in migrate_vma_collect_huge_pmd() 159 folio = pmd_folio(*pmdp); in migrate_vma_collect_huge_pmd() 164 if (pmd_write(*pmdp)) in migrate_vma_collect_huge_pmd() 166 } else if (!pmd_present(*pmdp)) { in migrate_vma_collect_huge_pmd() 167 const softleaf_t entry = softleaf_from_pmd(*pmdp); in migrate_vma_collect_huge_pmd() 247 migrate_vma_collect_pmd(pmd_t * pmdp,unsigned long start,unsigned long end,struct mm_walk * walk) migrate_vma_collect_pmd() argument 797 migrate_vma_insert_huge_pmd_page(struct migrate_vma * migrate,unsigned long addr,struct page * page,unsigned long * src,pmd_t * pmdp) migrate_vma_insert_huge_pmd_page() argument 934 migrate_vma_insert_huge_pmd_page(struct migrate_vma * migrate,unsigned long addr,struct page * page,unsigned long * src,pmd_t * pmdp) migrate_vma_insert_huge_pmd_page() argument 983 pmd_t *pmdp; migrate_vma_insert_page() local [all...] |
| H A D | debug_vm_pgtable.c | 52 pmd_t *pmdp; member 243 pgtable_trans_huge_deposit(args->mm, args->pmdp, args->start_ptep); in pmd_advanced_tests() 246 set_pmd_at(args->mm, vaddr, args->pmdp, pmd); in pmd_advanced_tests() 248 pmdp_set_wrprotect(args->mm, vaddr, args->pmdp); in pmd_advanced_tests() 249 pmd = pmdp_get(args->pmdp); in pmd_advanced_tests() 251 pmdp_huge_get_and_clear(args->mm, vaddr, args->pmdp); in pmd_advanced_tests() 252 pmd = pmdp_get(args->pmdp); in pmd_advanced_tests() 258 set_pmd_at(args->mm, vaddr, args->pmdp, pmd); in pmd_advanced_tests() 262 pmdp_set_access_flags(args->vma, vaddr, args->pmdp, pmd, 1); in pmd_advanced_tests() 263 pmd = pmdp_get(args->pmdp); in pmd_advanced_tests() [all...] |
| /linux/arch/arm64/mm/ |
| H A D | mmu.c | 197 static int alloc_init_cont_pte(pmd_t *pmdp, unsigned long addr, in alloc_init_cont_pte() argument 204 pmd_t pmd = READ_ONCE(*pmdp); in alloc_init_cont_pte() 221 __pmd_populate(pmdp, pte_phys, pmdval); in alloc_init_cont_pte() 224 ptep = pte_set_fixmap_offset(pmdp, addr); in alloc_init_cont_pte() 253 static int init_pmd(pmd_t *pmdp, unsigned long addr, unsigned long end, in init_pmd() argument 260 pmd_t old_pmd = READ_ONCE(*pmdp); in init_pmd() 267 pmd_set_huge(pmdp, phys, prot); in init_pmd() 274 READ_ONCE(pmd_val(*pmdp)))); in init_pmd() 278 ret = alloc_init_cont_pte(pmdp, addr, next, phys, prot, in init_pmd() 284 pmd_val(old_pmd) != READ_ONCE(pmd_val(*pmdp))); in init_pmd() [all …]
|
| H 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() 115 static void __init kasan_pte_populate(pmd_t *pmdp, unsigned long addr, in kasan_pte_populate() argument 119 pte_t *ptep = kasan_pte_offset(pmdp, addr, node, early); in kasan_pte_populate() 136 pmd_t *pmdp = kasan_pmd_offset(pudp, addr, node, early); in kasan_pmd_populate() local 140 kasan_pte_populate(pmdp, addr, next, node, early); in kasan_pmd_populate() 141 } while (pmdp++, addr = next, addr != end && pmd_none(READ_ONCE(*pmdp))); in kasan_pmd_populate()
|
| /linux/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() argument 137 old.pmd_low = xchg(&pmdp->pmd_low, pmd.pmd_low); in pmdp_establish() 138 old.pmd_high = READ_ONCE(pmdp->pmd_high); in pmdp_establish() [all …]
|
| H A D | pgtable-2level.h | 20 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd) in native_set_pmd() argument 22 *pmdp = pmd; in native_set_pmd() 34 static inline void native_pmd_clear(pmd_t *pmdp) in native_pmd_clear() argument 36 native_set_pmd(pmdp, __pmd(0)); in native_pmd_clear()
|
| /linux/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()
|
| /linux/arch/arm/include/asm/ |
| H 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()
|
| H A D | pgtable-3level.h | 148 #define pmd_clear(pmdp) \ argument 150 *pmdp = __pmd(0); \ 151 clean_pmd_entry(pmdp); \ 231 pmd_t *pmdp, pmd_t pmd) in set_pmd_at() argument 244 *pmdp = __pmd(pmd_val(pmd) | PMD_SECT_nG); in set_pmd_at() 245 flush_pmd_entry(pmdp); in set_pmd_at()
|
| /linux/include/linux/ |
| H A D | pgtable.h | 435 unsigned long address, pmd_t *pmdp, 442 unsigned long address, pmd_t *pmdp, in pmdp_set_access_flags() argument 466 static inline pmd_t pmdp_get(pmd_t *pmdp) in pmdp_get() argument 468 return READ_ONCE(*pmdp); in pmdp_get() 512 pmd_t *pmdp) in pmdp_test_and_clear_young() argument 514 pmd_t pmd = *pmdp; in pmdp_test_and_clear_young() 519 set_pmd_at(vma->vm_mm, address, pmdp, pmd_mkold(pmd)); in pmdp_test_and_clear_young() 525 pmd_t *pmdp) in pmdp_test_and_clear_young() argument 541 unsigned long address, pmd_t *pmdp); 548 unsigned long address, pmd_t *pmdp) in pmdp_clear_flush_young() argument [all …]
|
| /linux/arch/powerpc/mm/kasan/ |
| H A D | init_book3e_64.c | 37 pmd_t *pmdp; in kasan_map_kernel_page() local 49 pmdp = memblock_alloc_or_panic(PMD_TABLE_SIZE, PMD_TABLE_SIZE); in kasan_map_kernel_page() 50 memcpy(pmdp, kasan_early_shadow_pmd, PMD_TABLE_SIZE); in kasan_map_kernel_page() 51 pud_populate(&init_mm, pudp, pmdp); in kasan_map_kernel_page() 53 pmdp = pmd_offset(pudp, ea); in kasan_map_kernel_page() 54 if (kasan_pte_table(*pmdp)) { in kasan_map_kernel_page() 57 pmd_populate_kernel(&init_mm, pmdp, ptep); in kasan_map_kernel_page() 59 ptep = pte_offset_kernel(pmdp, ea); in kasan_map_kernel_page()
|
| /linux/arch/powerpc/mm/ |
| H 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() 57 pte_t __init *early_pte_alloc_kernel(pmd_t *pmdp, unsigned long va) in early_pte_alloc_kernel() argument 59 if (pmd_none(*pmdp)) { in early_pte_alloc_kernel() 62 pmd_populate_kernel(&init_mm, pmdp, ptep); in early_pte_alloc_kernel() 64 return pte_offset_kernel(pmdp, va); in early_pte_alloc_kernel()
|
| /linux/arch/powerpc/include/asm/book3s/64/ |
| H A D | hash-4k.h | 122 static inline char *get_hpte_slot_array(pmd_t *pmdp) in get_hpte_slot_array() argument 159 unsigned long addr, pmd_t *pmdp, 162 unsigned long address, pmd_t *pmdp); 163 extern void hash__pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, 165 extern pgtable_t hash__pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp); 167 unsigned long addr, pmd_t *pmdp);
|
| H A D | hash-64k.h | 202 static inline char *get_hpte_slot_array(pmd_t *pmdp) in get_hpte_slot_array() argument 211 return *(char **)(pmdp + PTRS_PER_PMD); in get_hpte_slot_array() 272 unsigned long addr, pmd_t *pmdp, 275 unsigned long address, pmd_t *pmdp); 276 extern void hash__pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, 278 extern pgtable_t hash__pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp); 280 unsigned long addr, pmd_t *pmdp);
|
| H A D | radix.h | 286 pmd_t *pmdp, unsigned long clr, 292 unsigned long address, pmd_t *pmdp); 293 extern void radix__pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, 295 extern pgtable_t radix__pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp); 297 unsigned long addr, pmd_t *pmdp);
|
| /linux/arch/arm/mm/ |
| H A D | kasan_init.c | 43 static void __init kasan_pte_populate(pmd_t *pmdp, unsigned long addr, in kasan_pte_populate() argument 47 pte_t *ptep = pte_offset_kernel(pmdp, addr); in kasan_pte_populate() 97 pmd_t *pmdp = pmd_offset(pudp, addr); in kasan_pmd_populate() local 100 if (pmd_none(*pmdp)) { in kasan_pmd_populate() 114 pmd_populate_kernel(&init_mm, pmdp, p); in kasan_pmd_populate() 115 flush_pmd_entry(pmdp); in kasan_pmd_populate() 119 kasan_pte_populate(pmdp, addr, next, early); in kasan_pmd_populate() 120 } while (pmdp++, addr = next, addr != end); in kasan_pmd_populate()
|
| /linux/arch/riscv/include/asm/ |
| H A D | pgtable.h | 245 static inline void set_pmd(pmd_t *pmdp, pmd_t pmd) in set_pmd() argument 247 WRITE_ONCE(*pmdp, pmd); in set_pmd() 250 static inline void pmd_clear(pmd_t *pmdp) in pmd_clear() argument 252 set_pmd(pmdp, __pmd(0)); in pmd_clear() 602 unsigned long address, pmd_t *pmdp) in update_mmu_cache_pmd() argument 604 pte_t *ptep = (pte_t *)pmdp; in update_mmu_cache_pmd() 973 pmd_t *pmdp, pmd_t pmd) in set_pmd_at() argument 975 page_table_check_pmd_set(mm, addr, pmdp, pmd); in set_pmd_at() 976 return __set_pte_at(mm, (pte_t *)pmdp, pmd_pte(pmd)); in set_pmd_at() 1011 unsigned long address, pmd_t *pmdp, in pmdp_set_access_flags() argument [all …]
|
| /linux/arch/powerpc/include/asm/book3s/32/ |
| H A D | pgalloc.h | 34 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmdp, in pmd_populate_kernel() argument 37 *pmdp = __pmd(__pa(pte) | _PMD_PRESENT); in pmd_populate_kernel() 40 static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmdp, in pmd_populate() argument 43 *pmdp = __pmd(__pa(pte_page) | _PMD_PRESENT); in pmd_populate()
|
| /linux/arch/x86/boot/compressed/ |
| H A D | ident_map_64.c | 193 pmd_t *pmdp, unsigned long __address) in split_large_pmd() argument 225 set_pmd(pmdp, pmd); in split_large_pmd() 262 pmd_t *pmdp; in set_clr_page_flags() local 285 pmdp = pmd_offset(pudp, address); in set_clr_page_flags() 287 if (pmd_leaf(*pmdp)) in set_clr_page_flags() 288 ptep = split_large_pmd(info, pmdp, address); in set_clr_page_flags() 290 ptep = pte_offset_kernel(pmdp, address); in set_clr_page_flags()
|
| /linux/include/trace/events/ |
| H A D | xen.h | 159 TP_PROTO(pmd_t *pmdp, pmd_t pmdval), 160 TP_ARGS(pmdp, pmdval), 162 __field(pmd_t *, pmdp) 165 TP_fast_assign(__entry->pmdp = pmdp; 168 __entry->pmdp, 192 TP_PROTO(pmd_t *pmdp), 193 TP_ARGS(pmdp), 195 __field(pmd_t *, pmdp) 197 TP_fast_assign(__entry->pmdp = pmdp), 198 TP_printk("pmdp %p", __entry->pmdp)
|
| /linux/arch/x86/mm/ |
| H A D | pgtable.c | 405 unsigned long address, pmd_t *pmdp, in pmdp_set_access_flags() argument 408 int changed = !pmd_same(*pmdp, entry); in pmdp_set_access_flags() 413 set_pmd(pmdp, entry); in pmdp_set_access_flags() 460 unsigned long addr, pmd_t *pmdp) in pmdp_test_and_clear_young() argument 464 if (pmd_young(*pmdp)) in pmdp_test_and_clear_young() 466 (unsigned long *)pmdp); in pmdp_test_and_clear_young() 507 unsigned long address, pmd_t *pmdp) in pmdp_clear_flush_young() argument 513 young = pmdp_test_and_clear_young(vma, address, pmdp); in pmdp_clear_flush_young() 521 pmd_t *pmdp) in pmdp_invalidate_ad() argument 523 VM_WARN_ON_ONCE(!pmd_present(*pmdp)); in pmdp_invalidate_ad() [all …]
|
| /linux/arch/m68k/include/asm/ |
| H A D | motorola_pgtable.h | 90 static inline void pmd_set(pmd_t *pmdp, pte_t *ptep) in pmd_set() argument 92 pmd_val(*pmdp) = virt_to_phys(ptep) | _PAGE_TABLE | _PAGE_ACCESSED; in pmd_set() 95 static inline void pud_set(pud_t *pudp, pmd_t *pmdp) in pud_set() argument 97 pud_val(*pudp) = _PAGE_TABLE | _PAGE_ACCESSED | __pa(pmdp); in pud_set() 117 #define pmd_clear(pmdp) ({ pmd_val(*pmdp) = 0; }) argument
|
| H A D | mcf_pgtable.h | 105 #define pmd_set(pmdp, ptep) do {} while (0) argument 107 static inline void pgd_set(pgd_t *pgdp, pmd_t *pmdp) in pgd_set() argument 109 pgd_val(*pgdp) = virt_to_phys(pmdp); in pgd_set() 138 static inline void pmd_clear(pmd_t *pmdp) { pmd_val(*pmdp) = 0; } in pmd_clear() argument
|
| /linux/arch/sparc/include/asm/ |
| H A D | pgtable_64.h | 818 pmd_t *pmdp, pmd_t pmd); 821 pmd_t *pmdp, pmd_t pmd) in set_pmd_at() argument 823 *pmdp = pmd; in set_pmd_at() 827 static inline void pmd_set(struct mm_struct *mm, pmd_t *pmdp, pte_t *ptep) in pmd_set() argument 831 pmd_val(*pmdp) = val; in pmd_set() 834 #define pud_set(pudp, pmdp) \ argument 835 (pud_val(*(pudp)) = (__pa((unsigned long) (pmdp)))) 858 #define pmd_clear(pmdp) (pmd_val(*(pmdp)) = 0UL) argument 916 pmd_t *pmdp) in pmdp_huge_get_and_clear() argument 918 pmd_t pmd = *pmdp; in pmdp_huge_get_and_clear() [all …]
|