/linux-6.12.1/arch/riscv/mm/ |
D | kasan_init.c | 142 static void __init kasan_populate_pgd(pgd_t *pgdp, in kasan_populate_pgd() argument 151 if (pgd_none(pgdp_get(pgdp)) && IS_ALIGNED(vaddr, PGDIR_SIZE) && in kasan_populate_pgd() 155 set_pgd(pgdp, pfn_pgd(PFN_DOWN(phys_addr), PAGE_KERNEL)); in kasan_populate_pgd() 161 kasan_populate_p4d(pgdp, vaddr, next); in kasan_populate_pgd() 162 } while (pgdp++, vaddr = next, vaddr != end); in kasan_populate_pgd() 190 static void __init kasan_early_clear_p4d(pgd_t *pgdp, in kasan_early_clear_p4d() argument 197 p4dp = (p4d_t *)pgdp; in kasan_early_clear_p4d() 199 base_p4d = pt_ops.get_p4d_virt(pfn_to_phys(_pgd_pfn(pgdp_get(pgdp)))); in kasan_early_clear_p4d() 216 static void __init kasan_early_clear_pgd(pgd_t *pgdp, in kasan_early_clear_pgd() argument 226 pgd_clear(pgdp); in kasan_early_clear_pgd() [all …]
|
D | pageattr.c | 180 static int __split_linear_mapping_p4d(pgd_t *pgdp, in __split_linear_mapping_p4d() argument 187 p4dp = p4d_offset(pgdp, vaddr); in __split_linear_mapping_p4d() 238 static int __split_linear_mapping_pgd(pgd_t *pgdp, in __split_linear_mapping_pgd() argument 248 ret = __split_linear_mapping_p4d(pgdp, vaddr, next); in __split_linear_mapping_pgd() 251 } while (pgdp++, vaddr = next, vaddr != end); in __split_linear_mapping_pgd()
|
/linux-6.12.1/arch/arm64/mm/ |
D | kasan_init.c | 102 static p4d_t *__init kasan_p4d_offset(pgd_t *pgdp, unsigned long addr, int node, in kasan_p4d_offset() argument 105 if (pgd_none(READ_ONCE(*pgdp))) { in kasan_p4d_offset() 109 __pgd_populate(pgdp, p4d_phys, PGD_TYPE_TABLE); in kasan_p4d_offset() 112 return early ? p4d_offset_kimg(pgdp, addr) : p4d_offset(pgdp, addr); in kasan_p4d_offset() 156 static void __init kasan_p4d_populate(pgd_t *pgdp, unsigned long addr, in kasan_p4d_populate() argument 160 p4d_t *p4dp = kasan_p4d_offset(pgdp, addr, node, early); in kasan_p4d_populate() 172 pgd_t *pgdp; in kasan_pgd_populate() local 174 pgdp = pgd_offset_k(addr); in kasan_pgd_populate() 177 kasan_p4d_populate(pgdp, addr, next, node, early); in kasan_pgd_populate() 178 } while (pgdp++, addr = next, addr != end); in kasan_pgd_populate() [all …]
|
D | mmu.c | 72 void noinstr set_swapper_pgd(pgd_t *pgdp, pgd_t pgd) in set_swapper_pgd() argument 81 WRITE_ONCE(*pgdp, pgd); in set_swapper_pgd() 88 fixmap_pgdp = pgd_set_fixmap(__pa_symbol(pgdp)); in set_swapper_pgd() 384 static void alloc_init_p4d(pgd_t *pgdp, unsigned long addr, unsigned long end, in alloc_init_p4d() argument 390 pgd_t pgd = READ_ONCE(*pgdp); in alloc_init_p4d() 404 __pgd_populate(pgdp, p4d_phys, pgdval); in alloc_init_p4d() 407 p4dp = p4d_set_fixmap_offset(pgdp, addr); in alloc_init_p4d() 434 pgd_t *pgdp = pgd_offset_pgd(pgdir, virt); in __create_pgd_mapping_locked() local 449 alloc_init_p4d(pgdp, addr, next, phys, prot, pgtable_alloc, in __create_pgd_mapping_locked() 452 } while (pgdp++, addr = next, addr != end); in __create_pgd_mapping_locked() [all …]
|
D | hugetlbpage.c | 85 pgd_t *pgdp = pgd_offset(mm, addr); in find_num_contig() local 91 p4dp = p4d_offset(pgdp, addr); in find_num_contig() 258 pgd_t *pgdp; in huge_pte_alloc() local 264 pgdp = pgd_offset(mm, addr); in huge_pte_alloc() 265 p4dp = p4d_alloc(mm, pgdp, addr); in huge_pte_alloc() 299 pgd_t *pgdp; in huge_pte_offset() local 304 pgdp = pgd_offset(mm, addr); in huge_pte_offset() 305 if (!pgd_present(READ_ONCE(*pgdp))) in huge_pte_offset() 308 p4dp = p4d_offset(pgdp, addr); in huge_pte_offset()
|
D | pageattr.c | 215 pgd_t *pgdp; in kernel_page_present() local 222 pgdp = pgd_offset_k(addr); in kernel_page_present() 223 if (pgd_none(READ_ONCE(*pgdp))) in kernel_page_present() 226 p4dp = p4d_offset(pgdp, addr); in kernel_page_present()
|
D | fixmap.c | 106 pgd_t *pgdp = pgd_offset_k(addr); in early_fixmap_init() local 107 p4d_t *p4dp = p4d_offset_kimg(pgdp, addr); in early_fixmap_init()
|
/linux-6.12.1/arch/loongarch/mm/ |
D | kasan_init.c | 157 static p4d_t *__init kasan_p4d_offset(pgd_t *pgdp, unsigned long addr, int node, bool early) in kasan_p4d_offset() argument 159 if (__pgd_none(early, pgdp_get(pgdp))) { in kasan_p4d_offset() 164 pgd_populate(&init_mm, pgdp, (p4d_t *)__va(p4d_phys)); in kasan_p4d_offset() 167 return p4d_offset(pgdp, addr); in kasan_p4d_offset() 209 static void __init kasan_p4d_populate(pgd_t *pgdp, unsigned long addr, in kasan_p4d_populate() argument 213 p4d_t *p4dp = kasan_p4d_offset(pgdp, addr, node, early); in kasan_p4d_populate() 225 pgd_t *pgdp; in kasan_pgd_populate() local 227 pgdp = pgd_offset_k(addr); in kasan_pgd_populate() 231 kasan_p4d_populate(pgdp, addr, next, node, early); in kasan_pgd_populate() 232 } while (pgdp++, addr = next, addr != end); in kasan_pgd_populate() [all …]
|
/linux-6.12.1/arch/powerpc/mm/nohash/ |
D | book3e_pgtable.c | 76 pgd_t *pgdp; in map_kernel_page() local 84 pgdp = pgd_offset_k(ea); in map_kernel_page() 85 p4dp = p4d_offset(pgdp, ea); in map_kernel_page() 96 pgdp = pgd_offset_k(ea); in map_kernel_page() 97 p4dp = p4d_offset(pgdp, ea); in map_kernel_page()
|
/linux-6.12.1/arch/arm64/include/asm/ |
D | pgalloc.h | 74 static inline void __pgd_populate(pgd_t *pgdp, phys_addr_t p4dp, pgdval_t prot) in __pgd_populate() argument 77 set_pgd(pgdp, __pgd(__phys_to_pgd_val(p4dp) | prot)); in __pgd_populate() 80 static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgdp, p4d_t *p4dp) in pgd_populate() argument 85 __pgd_populate(pgdp, __pa(p4dp), pgdval); in pgd_populate() 107 static inline void __pgd_populate(pgd_t *pgdp, phys_addr_t p4dp, pgdval_t prot) in __pgd_populate() argument 114 extern void pgd_free(struct mm_struct *mm, pgd_t *pgdp);
|
D | pgtable.h | 745 extern void set_swapper_pgd(pgd_t *pgdp, pgd_t pgd); 998 #define pud_set_fixmap_offset(pgdp, addr) ((pud_t *)pgdp) argument 1027 static inline void set_pgd(pgd_t *pgdp, pgd_t pgd) in set_pgd() argument 1029 if (in_swapper_pgdir(pgdp)) { in set_pgd() 1030 set_swapper_pgd(pgdp, __pgd(pgd_val(pgd))); in set_pgd() 1034 WRITE_ONCE(*pgdp, pgd); in set_pgd() 1039 static inline void pgd_clear(pgd_t *pgdp) in pgd_clear() argument 1042 set_pgd(pgdp, __pgd(0)); in pgd_clear() 1052 static inline p4d_t *pgd_to_folded_p4d(pgd_t *pgdp, unsigned long addr) in pgd_to_folded_p4d() argument 1054 return (p4d_t *)PTR_ALIGN_DOWN(pgdp, PAGE_SIZE) + p4d_index(addr); in pgd_to_folded_p4d() [all …]
|
D | mmu_context.h | 144 void __cpu_replace_ttbr1(pgd_t *pgdp, bool cnp); 151 static inline void cpu_replace_ttbr1(pgd_t *pgdp) in cpu_replace_ttbr1() argument 158 __cpu_replace_ttbr1(pgdp, false); in cpu_replace_ttbr1()
|
/linux-6.12.1/arch/arm/mm/ |
D | kasan_init.c | 127 pgd_t *pgdp; in kasan_pgd_populate() local 131 pgdp = pgd_offset_k(addr); in kasan_pgd_populate() 138 if (!early && pgd_none(*pgdp)) { in kasan_pgd_populate() 146 pgd_populate(&init_mm, pgdp, p); in kasan_pgd_populate() 155 p4dp = p4d_offset(pgdp, addr); in kasan_pgd_populate() 159 } while (pgdp++, addr = next, addr != end); in kasan_pgd_populate()
|
/linux-6.12.1/arch/arm64/kernel/pi/ |
D | map_kernel.c | 43 u64 pgdp = (u64)init_pg_dir + PAGE_SIZE; in map_kernel() local 81 map_segment(init_pg_dir, &pgdp, va_offset, _stext, _etext, prot, in map_kernel() 83 map_segment(init_pg_dir, &pgdp, va_offset, __start_rodata, in map_kernel() 85 map_segment(init_pg_dir, &pgdp, va_offset, __inittext_begin, in map_kernel() 87 map_segment(init_pg_dir, &pgdp, va_offset, __initdata_begin, in map_kernel() 89 map_segment(init_pg_dir, &pgdp, va_offset, _data, _end, data_prot, in map_kernel()
|
/linux-6.12.1/arch/s390/mm/ |
D | hugetlbpage.c | 194 pgd_t *pgdp; in huge_pte_alloc() local 199 pgdp = pgd_offset(mm, addr); in huge_pte_alloc() 200 p4dp = p4d_alloc(mm, pgdp, addr); in huge_pte_alloc() 216 pgd_t *pgdp; in huge_pte_offset() local 221 pgdp = pgd_offset(mm, addr); in huge_pte_offset() 222 if (pgd_present(*pgdp)) { in huge_pte_offset() 223 p4dp = p4d_offset(pgdp, addr); in huge_pte_offset()
|
D | pageattr.c | 325 pgd_t *pgdp; in change_page_attr() local 327 pgdp = pgd_offset_k(addr); in change_page_attr() 329 if (pgd_none(*pgdp)) in change_page_attr() 332 rc = walk_p4d_level(pgdp, addr, next, flags); in change_page_attr() 336 } while (pgdp++, addr = next, addr < end && !rc); in change_page_attr()
|
/linux-6.12.1/arch/sparc/mm/ |
D | srmmu.c | 110 static inline void srmmu_ctxd_set(ctxd_t *ctxp, pgd_t *pgdp) in srmmu_ctxd_set() argument 114 pte = __pte((SRMMU_ET_PTD | (__nocache_pa(pgdp) >> 4))); in srmmu_ctxd_set() 497 pgd_t *pgdp; in srmmu_mapioaddr() local 505 pgdp = pgd_offset_k(virt_addr); in srmmu_mapioaddr() 506 p4dp = p4d_offset(pgdp, virt_addr); in srmmu_mapioaddr() 536 pgd_t *pgdp; in srmmu_unmapioaddr() local 543 pgdp = pgd_offset_k(virt_addr); in srmmu_unmapioaddr() 544 p4dp = p4d_offset(pgdp, virt_addr); in srmmu_unmapioaddr() 683 pgd_t *pgdp; in srmmu_early_allocate_ptable_skeleton() local 690 pgdp = pgd_offset_k(start); in srmmu_early_allocate_ptable_skeleton() [all …]
|
D | fault_64.c | 81 pgd_t *pgdp = pgd_offset(current->mm, tpc); in get_user_insn() local 89 if (pgd_none(*pgdp) || unlikely(pgd_bad(*pgdp))) in get_user_insn() 91 p4dp = p4d_offset(pgdp, tpc); in get_user_insn()
|
/linux-6.12.1/arch/x86/mm/ |
D | pgtable.c | 274 static void mop_up_one_pmd(struct mm_struct *mm, pgd_t *pgdp) in mop_up_one_pmd() argument 276 pgd_t pgd = *pgdp; in mop_up_one_pmd() 281 pgd_clear(pgdp); in mop_up_one_pmd() 289 static void pgd_mop_up_pmds(struct mm_struct *mm, pgd_t *pgdp) in pgd_mop_up_pmds() argument 294 mop_up_one_pmd(mm, &pgdp[i]); in pgd_mop_up_pmds() 301 pgdp = kernel_to_user_pgdp(pgdp); in pgd_mop_up_pmds() 304 mop_up_one_pmd(mm, &pgdp[i + KERNEL_PGD_BOUNDARY]); in pgd_mop_up_pmds()
|
/linux-6.12.1/arch/powerpc/mm/kasan/ |
D | init_book3e_64.c | 34 pgd_t *pgdp; in kasan_map_kernel_page() local 40 pgdp = pgd_offset_k(ea); in kasan_map_kernel_page() 41 p4dp = p4d_offset(pgdp, ea); in kasan_map_kernel_page()
|
/linux-6.12.1/arch/x86/include/asm/ |
D | paravirt.h | 505 static inline void __set_pgd(pgd_t *pgdp, pgd_t pgd) in __set_pgd() argument 507 PVOP_VCALL2(mmu.set_pgd, pgdp, native_pgd_val(pgd)); in __set_pgd() 510 #define set_pgd(pgdp, pgdval) do { \ argument 512 __set_pgd(pgdp, pgdval); \ 514 set_p4d((p4d_t *)(pgdp), (p4d_t) { (pgdval).pgd }); \ 517 #define pgd_clear(pgdp) do { \ argument 519 set_pgd(pgdp, native_make_pgd(0)); \
|
D | pgtable_64.h | 162 static inline void native_set_pgd(pgd_t *pgdp, pgd_t pgd) in native_set_pgd() argument 164 WRITE_ONCE(*pgdp, pti_set_user_pgtbl(pgdp, pgd)); in native_set_pgd()
|
D | pgtable.h | 76 #define set_pgd(pgdp, pgd) native_set_pgd(pgdp, pgd) argument 956 pgd_t __pti_set_user_pgtbl(pgd_t *pgdp, pgd_t pgd); 963 static inline pgd_t pti_set_user_pgtbl(pgd_t *pgdp, pgd_t pgd) in pti_set_user_pgtbl() argument 967 return __pti_set_user_pgtbl(pgdp, pgd); in pti_set_user_pgtbl() 970 static inline pgd_t pti_set_user_pgtbl(pgd_t *pgdp, pgd_t pgd) in pti_set_user_pgtbl() argument 1506 static inline pgd_t *kernel_to_user_pgdp(pgd_t *pgdp) in kernel_to_user_pgdp() argument 1508 return ptr_set_bit(pgdp, PTI_PGTABLE_SWITCH_BIT); in kernel_to_user_pgdp() 1511 static inline pgd_t *user_to_kernel_pgdp(pgd_t *pgdp) in user_to_kernel_pgdp() argument 1513 return ptr_clear_bit(pgdp, PTI_PGTABLE_SWITCH_BIT); in user_to_kernel_pgdp()
|
/linux-6.12.1/arch/powerpc/mm/ |
D | pgtable.c | 431 pgd_t *pgdp; in __find_linux_pte() local 456 pgdp = pgdir + pgd_index(ea); in __find_linux_pte() 458 p4dp = p4d_offset(pgdp, ea); in __find_linux_pte() 489 pmdp = pmd_offset(pud_offset(p4d_offset(pgdp, ea), ea), ea); in __find_linux_pte()
|
/linux-6.12.1/arch/riscv/include/asm/ |
D | pgtable-64.h | 343 static inline void set_pgd(pgd_t *pgdp, pgd_t pgd) in set_pgd() argument 346 WRITE_ONCE(*pgdp, pgd); in set_pgd() 348 set_p4d((p4d_t *)pgdp, (p4d_t){ pgd_val(pgd) }); in set_pgd()
|