| /linux/arch/powerpc/include/asm/nohash/64/ |
| H A D | pgtable-4k.h | 56 #define p4d_none(p4d) (!p4d_val(p4d)) argument 57 #define p4d_bad(p4d) (p4d_val(p4d) == 0) argument 58 #define p4d_present(p4d) (p4d_val(p4d) != 0) argument 62 static inline pud_t *p4d_pgtable(p4d_t p4d) in p4d_pgtable() argument 64 return (pud_t *) (p4d_val(p4d) & ~P4D_MASKED_BITS); in p4d_pgtable() 72 static inline pte_t p4d_pte(p4d_t p4d) in p4d_pte() argument 74 return __pte(p4d_val(p4d)); in p4d_pte() 81 extern struct page *p4d_page(p4d_t p4d);
|
| /linux/arch/riscv/include/asm/ |
| H A D | pgtable-64.h | 46 unsigned long p4d; member 49 #define p4d_val(x) ((x).p4d) 276 static inline void set_p4d(p4d_t *p4dp, p4d_t p4d) in set_p4d() argument 279 WRITE_ONCE(*p4dp, p4d); in set_p4d() 281 set_pud((pud_t *)p4dp, (pud_t){ p4d_val(p4d) }); in set_p4d() 284 static inline int p4d_none(p4d_t p4d) in p4d_none() argument 287 return (p4d_val(p4d) == 0); in p4d_none() 292 static inline int p4d_present(p4d_t p4d) in p4d_present() argument 295 return (p4d_val(p4d) & _PAGE_PRESENT); in p4d_present() 300 static inline int p4d_bad(p4d_t p4d) in p4d_bad() argument [all …]
|
| H A D | pgalloc.h | 42 static inline void p4d_populate(struct mm_struct *mm, p4d_t *p4d, pud_t *pud) in p4d_populate() argument 47 set_p4d(p4d, __p4d((pfn << _PAGE_PFN_SHIFT) | _PAGE_TABLE)); in p4d_populate() 51 static inline void p4d_populate_safe(struct mm_struct *mm, p4d_t *p4d, in p4d_populate_safe() argument 57 set_p4d_safe(p4d, in p4d_populate_safe() 62 static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, p4d_t *p4d) in pgd_populate() argument 65 unsigned long pfn = virt_to_pfn(p4d); in pgd_populate() 72 p4d_t *p4d) in pgd_populate_safe() argument 75 unsigned long pfn = virt_to_pfn(p4d); in pgd_populate_safe() 96 static inline void __p4d_free_tlb(struct mmu_gather *tlb, p4d_t *p4d, in __p4d_free_tlb() argument 100 tlb_remove_ptdesc(tlb, virt_to_ptdesc(p4d)); in __p4d_free_tlb()
|
| /linux/arch/x86/include/asm/ |
| H A D | pgalloc.h | 111 static inline void p4d_populate(struct mm_struct *mm, p4d_t *p4d, pud_t *pud) in p4d_populate() argument 114 set_p4d(p4d, __p4d(_PAGE_TABLE | __pa(pud))); in p4d_populate() 117 static inline void p4d_populate_safe(struct mm_struct *mm, p4d_t *p4d, pud_t *pud) in p4d_populate_safe() argument 120 set_p4d_safe(p4d, __p4d(_PAGE_TABLE | __pa(pud))); in p4d_populate_safe() 132 static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, p4d_t *p4d) in pgd_populate() argument 136 paravirt_alloc_p4d(mm, __pa(p4d) >> PAGE_SHIFT); in pgd_populate() 137 set_pgd(pgd, __pgd(_PAGE_TABLE | __pa(p4d))); in pgd_populate() 140 static inline void pgd_populate_safe(struct mm_struct *mm, pgd_t *pgd, p4d_t *p4d) in pgd_populate_safe() argument 144 paravirt_alloc_p4d(mm, __pa(p4d) >> PAGE_SHIFT); in pgd_populate_safe() 145 set_pgd_safe(pgd, __pgd(_PAGE_TABLE | __pa(p4d))); in pgd_populate_safe() [all …]
|
| /linux/arch/x86/mm/ |
| H A D | kasan_init_64.c | 102 static void __init kasan_populate_p4d(p4d_t *p4d, unsigned long addr, in kasan_populate_p4d() argument 108 if (p4d_none(*p4d)) { in kasan_populate_p4d() 111 p4d_populate(&init_mm, p4d, p); in kasan_populate_p4d() 114 pud = pud_offset(p4d, addr); in kasan_populate_p4d() 126 p4d_t *p4d; in kasan_populate_pgd() local 134 p4d = p4d_offset(pgd, addr); in kasan_populate_pgd() 137 kasan_populate_p4d(p4d, addr, next, nid); in kasan_populate_pgd() 138 } while (p4d++, addr = next, addr != end); in kasan_populate_pgd() 193 unsigned long p4d; in early_p4d_offset() local 198 p4d = pgd_val(*pgd) & PTE_PFN_MASK; in early_p4d_offset() [all …]
|
| H A D | pgtable_32.c | 30 p4d_t *p4d; in set_pte_vaddr() local 40 p4d = p4d_offset(pgd, vaddr); in set_pte_vaddr() 41 if (p4d_none(*p4d)) { in set_pte_vaddr() 45 pud = pud_offset(p4d, vaddr); in set_pte_vaddr()
|
| /linux/arch/arm/mm/ |
| H A D | pgd.c | 143 p4d_t *p4d; in pgd_free() local 155 p4d = p4d_offset(pgd, 0); in pgd_free() 156 if (p4d_none_or_clear_bad(p4d)) in pgd_free() 159 pud = pud_offset(p4d, 0); in pgd_free() 176 p4d_clear(p4d); in pgd_free() 180 p4d_free(mm, p4d); in pgd_free() 191 p4d = p4d_offset(pgd, 0); in pgd_free() 192 if (p4d_none_or_clear_bad(p4d)) in pgd_free() 194 pud = pud_offset(p4d, 0); in pgd_free() 201 p4d_clear(p4d); in pgd_free() [all …]
|
| H A D | fault.c | 52 p4d_t *p4d; in show_pte() local 57 p4d = p4d_offset(pgd, addr); in show_pte() 58 if (p4d_none(*p4d)) in show_pte() 61 if (p4d_bad(*p4d)) { in show_pte() 66 pud = pud_offset(p4d, addr); in show_pte() 250 p4d_t *p4d, *p4d_k; in vmalloc_fault() local 259 p4d = p4d_offset(pgd, addr); in vmalloc_fault() 264 if (!p4d_present(*p4d)) in vmalloc_fault() 265 set_p4d(p4d, *p4d_k); in vmalloc_fault() 267 pud = pud_offset(p4d, addr); in vmalloc_fault()
|
| /linux/arch/loongarch/mm/ |
| H A D | hugetlbpage.c | 20 p4d_t *p4d; in huge_pte_alloc() local 25 p4d = p4d_alloc(mm, pgd, addr); in huge_pte_alloc() 26 pud = pud_alloc(mm, p4d, addr); in huge_pte_alloc() 37 p4d_t *p4d; in huge_pte_offset() local 43 p4d = p4d_offset(pgd, addr); in huge_pte_offset() 44 if (p4d_present(p4dp_get(p4d))) { in huge_pte_offset() 45 pud = pud_offset(p4d, addr); in huge_pte_offset()
|
| H A D | pageattr.c | 41 static int pageattr_p4d_entry(p4d_t *p4d, unsigned long addr, in pageattr_p4d_entry() argument 44 p4d_t val = p4dp_get(p4d); in pageattr_p4d_entry() 48 set_p4d(p4d, val); in pageattr_p4d_entry() 164 p4d_t *p4d; in kernel_page_present() local 179 p4d = p4d_offset(pgd, addr); in kernel_page_present() 180 if (p4d_none(p4dp_get(p4d))) in kernel_page_present() 182 if (p4d_leaf(p4dp_get(p4d))) in kernel_page_present() 185 pud = pud_offset(p4d, addr); in kernel_page_present()
|
| /linux/arch/um/include/asm/ |
| H A D | pgtable-4level.h | 69 #define p4d_populate(mm, p4d, pud) \ argument 70 set_p4d(p4d, __p4d(_PAGE_TABLE + __pa(pud))) 89 static inline void p4d_clear (p4d_t *p4d) in p4d_clear() argument 91 set_p4d(p4d, __p4d(_PAGE_NEEDSYNC)); in p4d_clear() 97 #define p4d_page(p4d) phys_to_page(p4d_val(p4d) & PAGE_MASK) argument 98 #define p4d_pgtable(p4d) ((pud_t *) __va(p4d_val(p4d) & PAGE_MASK)) argument
|
| /linux/arch/x86/boot/startup/ |
| H A D | map_kernel.c | 96 p4dval_t *p4d; in __startup_64() local 130 p4d = (p4dval_t *)rip_rel_ptr(level4_kernel_pgt); in __startup_64() 131 p4d[MAX_PTRS_PER_P4D - 1] += load_delta; in __startup_64() 133 pgd[pgd_index(__START_KERNEL_map)] = (pgdval_t)p4d | _PAGE_TABLE; in __startup_64() 156 p4d = &early_pgts[next_early_pgt++]->pmd; in __startup_64() 159 pgd[i + 0] = (pgdval_t)p4d + pgtable_flags; in __startup_64() 160 pgd[i + 1] = (pgdval_t)p4d + pgtable_flags; in __startup_64() 163 p4d[(i + 0) % PTRS_PER_P4D] = (pgdval_t)pud + pgtable_flags; in __startup_64() 164 p4d[(i + 1) % PTRS_PER_P4D] = (pgdval_t)pud + pgtable_flags; in __startup_64()
|
| /linux/arch/x86/hyperv/ |
| H A D | hv_crash.c | 118 p4d_t *p4d; in hv_crash_clear_kernpt() local 122 p4d = p4d_offset(pgd, trampoline_pa); in hv_crash_clear_kernpt() 123 native_p4d_clear(p4d); in hv_crash_clear_kernpt() 229 p4d_t *p4d; in hv_crash_fixup_kernpt() local 232 p4d = p4d_offset(pgd, trampoline_pa); in hv_crash_fixup_kernpt() 235 p4d_populate(&init_mm, p4d, (pud_t *)hv_crash_ptpgs[1]); in hv_crash_fixup_kernpt() 236 p4d->p4d = p4d->p4d & ~(_PAGE_NX); /* enable execute */ in hv_crash_fixup_kernpt() 509 p4d_t *p4d; in hv_crash_build_tramp_pt() local 515 p4d = hv_crash_ptpgs[0] + pgd_index(addr) * sizeof(p4d); in hv_crash_build_tramp_pt() 517 set_p4d(p4d, __p4d(_PAGE_TABLE | pa)); in hv_crash_build_tramp_pt() [all …]
|
| /linux/arch/parisc/mm/ |
| H A D | hugetlbpage.c | 30 p4d_t *p4d; in huge_pte_alloc() local 43 p4d = p4d_offset(pgd, addr); in huge_pte_alloc() 44 pud = pud_alloc(mm, p4d, addr); in huge_pte_alloc() 57 p4d_t *p4d; in huge_pte_offset() local 66 p4d = p4d_offset(pgd, addr); in huge_pte_offset() 67 if (!p4d_none(*p4d)) { in huge_pte_offset() 68 pud = pud_offset(p4d, addr); in huge_pte_offset()
|
| /linux/include/linux/ |
| H A D | pgalloc.h | 15 #define pgd_populate_kernel(addr, pgd, p4d) \ argument 17 pgd_populate(&init_mm, pgd, p4d); \ 22 #define p4d_populate_kernel(addr, p4d, pud) \ argument 24 p4d_populate(&init_mm, p4d, pud); \
|
| /linux/arch/x86/power/ |
| H A D | hibernate.c | 157 p4d_t *p4d; in relocate_restore_code() local 171 p4d = p4d_offset(pgd, relocated_restore_code); in relocate_restore_code() 172 if (p4d_leaf(*p4d)) { in relocate_restore_code() 173 set_p4d(p4d, __p4d(p4d_val(*p4d) & ~_PAGE_NX)); in relocate_restore_code() 176 pud = pud_offset(p4d, relocated_restore_code); in relocate_restore_code()
|
| H A D | hibernate_32.c | 32 p4d_t *p4d; in resume_one_md_table_init() local 42 p4d = p4d_offset(pgd, 0); in resume_one_md_table_init() 43 pud = pud_offset(p4d, 0); in resume_one_md_table_init() 47 p4d = p4d_offset(pgd, 0); in resume_one_md_table_init() 48 pud = pud_offset(p4d, 0); in resume_one_md_table_init()
|
| /linux/arch/sh/mm/ |
| H A D | fault.c | 56 p4d_t *p4d; in show_pte() local 69 p4d = p4d_offset(pgd, addr); in show_pte() 71 pr_cont(", *p4d=%0*Lx", (u32)(sizeof(*p4d) * 2), in show_pte() 72 (u64)p4d_val(*p4d)); in show_pte() 74 if (p4d_none(*p4d)) in show_pte() 77 if (p4d_bad(*p4d)) { in show_pte() 82 pud = pud_offset(p4d, addr); in show_pte() 124 p4d_t *p4d, *p4d_k; in vmalloc_sync_one() local 134 p4d = p4d_offset(pgd, address); in vmalloc_sync_one() 139 pud = pud_offset(p4d, address); in vmalloc_sync_one()
|
| H A D | tlbex_32.c | 27 p4d_t *p4d; in handle_tlbmiss() local 47 p4d = p4d_offset(pgd, address); in handle_tlbmiss() 48 if (p4d_none_or_clear_bad(p4d)) in handle_tlbmiss() 50 pud = pud_offset(p4d, address); in handle_tlbmiss()
|
| /linux/mm/ |
| H A D | pgalloc-track.h | 19 static inline pud_t *pud_alloc_track(struct mm_struct *mm, p4d_t *p4d, in pud_alloc_track() argument 23 if (unlikely(p4d_none(*p4d))) { in pud_alloc_track() 24 if (__pud_alloc(mm, p4d, address)) in pud_alloc_track() 29 return pud_offset(p4d, address); in pud_alloc_track()
|
| /linux/arch/arc/include/asm/ |
| H A D | pgtable-levels.h | 111 #define p4d_pgtable(p4d) ((pud_t *)(p4d_val(p4d) & PAGE_MASK)) argument 112 #define p4d_page(p4d) virt_to_page(p4d_pgtable(p4d)) argument 113 #define set_p4d(p4dp, p4d) (*(p4dp) = p4d) argument
|
| /linux/arch/loongarch/include/asm/ |
| H A D | pgtable.h | 164 static inline int p4d_none(p4d_t p4d) in p4d_none() argument 166 return p4d_val(p4d) == (unsigned long)invalid_pud_table; in p4d_none() 169 static inline int p4d_bad(p4d_t p4d) in p4d_bad() argument 171 return p4d_val(p4d) & ~PAGE_MASK; in p4d_bad() 174 static inline int p4d_present(p4d_t p4d) in p4d_present() argument 176 return p4d_val(p4d) != (unsigned long)invalid_pud_table; in p4d_present() 179 static inline pud_t *p4d_pgtable(p4d_t p4d) in p4d_pgtable() argument 181 return (pud_t *)p4d_val(p4d); in p4d_pgtable() 184 static inline void set_p4d(p4d_t *p4d, p4d_t p4dval) in set_p4d() argument 186 WRITE_ONCE(*p4d, p4dval); in set_p4d() [all …]
|
| /linux/arch/arc/mm/ |
| H A D | fault.c | 33 p4d_t *p4d, *p4d_k; in handle_kernel_vaddr_fault() local 45 p4d = p4d_offset(pgd, address); in handle_kernel_vaddr_fault() 49 if (!p4d_present(*p4d)) in handle_kernel_vaddr_fault() 50 set_p4d(p4d, *p4d_k); in handle_kernel_vaddr_fault() 52 pud = pud_offset(p4d, address); in handle_kernel_vaddr_fault()
|
| /linux/arch/microblaze/mm/ |
| H A D | pgtable.c | 139 p4d_t *p4d; in map_page() local 146 p4d = p4d_offset(pgd_offset_k(va), va); in map_page() 147 pud = pud_offset(p4d, va); in map_page() 198 p4d_t *p4d; in get_pteptr() local 206 p4d = p4d_offset(pgd, addr & PAGE_MASK); in get_pteptr() 207 pud = pud_offset(p4d, addr & PAGE_MASK); in get_pteptr()
|
| /linux/arch/mips/mm/ |
| H A D | pgtable-32.c | 47 p4d_t *p4d; in pagetable_init() local 73 p4d = p4d_offset(pgd, vaddr); in pagetable_init() 74 pud = pud_offset(p4d, vaddr); in pagetable_init()
|