Home
last modified time | relevance | path

Searched refs:pgd (Results 1 – 25 of 338) sorted by relevance

12345678910>>...14

/linux-6.15/include/asm-generic/
H A Dpgtable-nop4d.h9 typedef struct { pgd_t pgd; } p4d_t; member
21 static inline int pgd_none(pgd_t pgd) { return 0; } in pgd_none() argument
22 static inline int pgd_bad(pgd_t pgd) { return 0; } in pgd_bad() argument
23 static inline int pgd_present(pgd_t pgd) { return 1; } in pgd_present() argument
24 static inline void pgd_clear(pgd_t *pgd) { } in pgd_clear() argument
25 #define p4d_ERROR(p4d) (pgd_ERROR((p4d).pgd))
27 #define pgd_populate(mm, pgd, p4d) do { } while (0) argument
37 return (p4d_t *)pgd; in p4d_offset()
40 #define p4d_val(x) (pgd_val((x).pgd))
43 #define pgd_page(pgd) (p4d_page((p4d_t){ pgd })) argument
[all …]
/linux-6.15/arch/x86/mm/
H A Dkasan_init_64.c129 if (pgd_none(*pgd)) { in kasan_populate_pgd()
144 pgd_t *pgd; in kasan_populate_shadow() local
149 pgd = pgd_offset_k(addr); in kasan_populate_shadow()
170 pgd_t *pgd; in clear_pgds() local
181 pgd_clear(pgd); in clear_pgds()
196 return (p4d_t *)pgd; in early_p4d_offset()
211 if (pgd_none(*pgd)) { in kasan_early_p4d_populate()
214 set_pgd(pgd, pgd_entry); in kasan_early_p4d_populate()
237 pgd += pgd_index(addr); in kasan_map_early_shadow()
266 pgd_t *pgd; in kasan_shallow_populate_pgds() local
[all …]
H A Dpgtable.c102 pgd_set_mm(pgd, mm); in pgd_ctor()
103 pgd_list_add(pgd); in pgd_ctor()
113 pgd_list_del(pgd); in pgd_dtor()
237 pgd_t pgd = *pgdp; in mop_up_one_pmd() local
394 pgd_t *pgd; in pgd_alloc() local
400 if (pgd == NULL) in pgd_alloc()
403 mm->pgd = pgd; in pgd_alloc()
423 pgd_ctor(mm, pgd); in pgd_alloc()
432 return pgd; in pgd_alloc()
441 _pgd_free(mm, pgd); in pgd_alloc()
[all …]
H A Dpti.c135 if (!pgdp_maps_userspace(pgdp) || (pgd.pgd & _PAGE_NOPTISHADOW)) in __pti_set_user_pgtbl()
136 return pgd; in __pti_set_user_pgtbl()
142 kernel_to_user_pgdp(pgdp)->pgd = pgd.pgd; in __pti_set_user_pgtbl()
157 if ((pgd.pgd & (_PAGE_USER|_PAGE_PRESENT)) == (_PAGE_USER|_PAGE_PRESENT) && in __pti_set_user_pgtbl()
159 pgd.pgd |= _PAGE_NX; in __pti_set_user_pgtbl()
162 return pgd; in __pti_set_user_pgtbl()
181 if (pgd_none(*pgd)) { in pti_user_pagetable_walk_p4d()
320 pgd_t *pgd; in pti_clone_pgtable() local
328 pgd = pgd_offset_k(addr); in pti_clone_pgtable()
329 if (WARN_ON(pgd_none(*pgd))) in pti_clone_pgtable()
[all …]
H A Dinit_64.c151 pgd_t *pgd; in sync_global_pgds_l5() local
162 if (pgd_none(*pgd)) in sync_global_pgds_l5()
192 pgd_t *pgd; in sync_global_pgds_l4() local
252 if (pgd_none(*pgd)) { in fill_p4d()
328 pgd_t *pgd; in set_pte_vaddr() local
334 if (pgd_none(*pgd)) { in set_pte_vaddr()
346 pgd_t *pgd; in populate_extra_pmd() local
370 pgd_t *pgd; in __init_extra_mapping() local
381 if (pgd_none(*pgd)) { in __init_extra_mapping()
1246 pgd_t *pgd; in remove_pagetable() local
[all …]
H A Dident_map.c50 static void free_p4d(struct x86_mapping_info *info, pgd_t *pgd) in free_p4d() argument
52 p4d_t *p4d = p4d_offset(pgd, 0); in free_p4d()
66 void kernel_ident_mapping_free(struct x86_mapping_info *info, pgd_t *pgd) in kernel_ident_mapping_free() argument
71 if (!pgd_present(pgd[i])) in kernel_ident_mapping_free()
74 free_p4d(info, &pgd[i]); in kernel_ident_mapping_free()
77 info->free_pgt_page(pgd, info->context); in kernel_ident_mapping_free()
194 pgd_t *pgd = pgd_page + pgd_index(addr); in kernel_ident_mapping_init() local
198 if (pgd_present(*pgd)) { in kernel_ident_mapping_init()
199 p4d = p4d_offset(pgd, 0); in kernel_ident_mapping_init()
213 set_pgd(pgd, __pgd(__pa(p4d) | info->kernpg_flag | _PAGE_NOPTISHADOW)); in kernel_ident_mapping_init()
[all …]
/linux-6.15/arch/powerpc/include/asm/book3s/64/
H A Dpgalloc.h42 free_page((unsigned long)pgd); in radix__pgd_free()
44 free_pages((unsigned long)pgd, 4); in radix__pgd_free()
50 pgd_t *pgd; in pgd_alloc() local
55 pgd = kmem_cache_alloc(PGT_CACHE(PGD_INDEX_SIZE), in pgd_alloc()
57 if (unlikely(!pgd)) in pgd_alloc()
58 return pgd; in pgd_alloc()
65 kmemleak_no_scan(pgd); in pgd_alloc()
76 memset(pgd, 0, PGD_TABLE_SIZE); in pgd_alloc()
78 return pgd; in pgd_alloc()
84 return radix__pgd_free(mm, pgd); in pgd_free()
[all …]
/linux-6.15/arch/arm/mm/
H A Dpgd.c21 #define _pgd_free(mm, pgd) kfree(pgd) argument
24 #define _pgd_free(mm, pgd) __pgd_free(mm, pgd) argument
142 pgd_t *pgd; in pgd_free() local
151 pgd = pgd_base + pgd_index(0); in pgd_free()
152 if (pgd_none_or_clear_bad(pgd)) in pgd_free()
155 p4d = p4d_offset(pgd, 0); in pgd_free()
179 pgd_clear(pgd); in pgd_free()
186 for (pgd = pgd_base; pgd < pgd_base + PTRS_PER_PGD; pgd++) { in pgd_free()
187 if (pgd_none_or_clear_bad(pgd)) in pgd_free()
191 p4d = p4d_offset(pgd, 0); in pgd_free()
[all …]
/linux-6.15/arch/riscv/include/asm/
H A Dpgtable-64.h346 WRITE_ONCE(*pgdp, pgd); in set_pgd()
351 static inline int pgd_none(pgd_t pgd) in pgd_none() argument
354 return (pgd_val(pgd) == 0); in pgd_none()
359 static inline int pgd_present(pgd_t pgd) in pgd_present() argument
362 return (pgd_val(pgd) & _PAGE_PRESENT); in pgd_present()
367 static inline int pgd_bad(pgd_t pgd) in pgd_bad() argument
370 return !pgd_present(pgd); in pgd_bad()
378 set_pgd(pgd, __pgd(0)); in pgd_clear()
388 #define pgd_page_vaddr(pgd) ((unsigned long)pgd_pgtable(pgd)) argument
394 #define pgd_page(pgd) pgd_page(pgd) argument
[all …]
H A Dpgalloc.h67 set_pgd(pgd, __pgd((pfn << _PAGE_PFN_SHIFT) | _PAGE_TABLE)); in pgd_populate()
71 static inline void pgd_populate_safe(struct mm_struct *mm, pgd_t *pgd, in pgd_populate_safe() argument
77 set_pgd_safe(pgd, in pgd_populate_safe()
104 static inline void sync_kernel_mappings(pgd_t *pgd) in sync_kernel_mappings() argument
106 memcpy(pgd + USER_PTRS_PER_PGD, in sync_kernel_mappings()
107 init_mm.pgd + USER_PTRS_PER_PGD, in sync_kernel_mappings()
113 pgd_t *pgd; in pgd_alloc() local
115 pgd = __pgd_alloc(mm, 0); in pgd_alloc()
116 if (likely(pgd != NULL)) { in pgd_alloc()
118 sync_kernel_mappings(pgd); in pgd_alloc()
[all …]
/linux-6.15/arch/sh/mm/
H A Dhugetlbpage.c27 pgd_t *pgd; in huge_pte_alloc() local
33 pgd = pgd_offset(mm, addr); in huge_pte_alloc()
34 if (pgd) { in huge_pte_alloc()
35 p4d = p4d_alloc(mm, pgd, addr); in huge_pte_alloc()
52 pgd_t *pgd; in huge_pte_offset() local
58 pgd = pgd_offset(mm, addr); in huge_pte_offset()
59 if (pgd) { in huge_pte_offset()
60 p4d = p4d_offset(pgd, addr); in huge_pte_offset()
H A Dfault.c39 pgd_t *pgd; in show_pte() local
42 pgd = mm->pgd; in show_pte()
44 pgd = get_TTB(); in show_pte()
46 if (unlikely(!pgd)) in show_pte()
47 pgd = swapper_pg_dir; in show_pte()
50 pr_alert("pgd = %p\n", pgd); in show_pte()
51 pgd += pgd_index(addr); in show_pte()
53 (u64)pgd_val(*pgd)); in show_pte()
61 if (pgd_none(*pgd)) in show_pte()
64 if (pgd_bad(*pgd)) { in show_pte()
[all …]
H A Dpgtable.c14 pgd_t *pgd = x; in pgd_ctor() local
16 memset(pgd, 0, USER_PTRS_PER_PGD * sizeof(pgd_t)); in pgd_ctor()
17 memcpy(pgd + USER_PTRS_PER_PGD, in pgd_ctor()
39 void pgd_free(struct mm_struct *mm, pgd_t *pgd) in pgd_free() argument
41 kmem_cache_free(pgd_cachep, pgd); in pgd_free()
/linux-6.15/mm/kasan/
H A Dinit.c254 pgd_populate(&init_mm, pgd, in kasan_populate_early_shadow()
256 p4d = p4d_offset(pgd, addr); in kasan_populate_early_shadow()
268 if (pgd_none(*pgd)) { in kasan_populate_early_shadow()
343 pgd_clear(pgd); in kasan_free_p4d()
450 pgd_t *pgd; in kasan_remove_zero_shadow() local
464 pgd = pgd_offset_k(addr); in kasan_remove_zero_shadow()
465 if (!pgd_present(*pgd)) in kasan_remove_zero_shadow()
468 if (kasan_p4d_table(*pgd)) { in kasan_remove_zero_shadow()
471 pgd_clear(pgd); in kasan_remove_zero_shadow()
476 p4d = p4d_offset(pgd, addr); in kasan_remove_zero_shadow()
[all …]
/linux-6.15/arch/x86/power/
H A Dhibernate_32.c30 static pmd_t *resume_one_md_table_init(pgd_t *pgd) in resume_one_md_table_init() argument
41 set_pgd(pgd, __pgd(__pa(pmd_table) | _PAGE_PRESENT)); in resume_one_md_table_init()
42 p4d = p4d_offset(pgd, 0); in resume_one_md_table_init()
47 p4d = p4d_offset(pgd, 0); in resume_one_md_table_init()
84 pgd_t *pgd; in resume_physical_mapping_init() local
90 pgd = pgd_base + pgd_idx; in resume_physical_mapping_init()
93 for (; pgd_idx < PTRS_PER_PGD; pgd++, pgd_idx++) { in resume_physical_mapping_init()
94 pmd = resume_one_md_table_init(pgd); in resume_physical_mapping_init()
147 pgd_t *pgd; in set_up_temporary_text_mapping() local
151 pgd = pgd_base + pgd_index(restore_jump_address); in set_up_temporary_text_mapping()
[all …]
H A Dhibernate_64.c28 static int set_up_temporary_text_mapping(pgd_t *pgd) in set_up_temporary_text_mapping() argument
77 set_pgd(pgd + pgd_index(restore_jump_address), new_pgd); in set_up_temporary_text_mapping()
81 set_pgd(pgd + pgd_index(restore_jump_address), new_pgd); in set_up_temporary_text_mapping()
100 pgd_t *pgd; in set_up_temporary_mappings() local
104 pgd = (pgd_t *)get_safe_page(GFP_ATOMIC); in set_up_temporary_mappings()
105 if (!pgd) in set_up_temporary_mappings()
109 result = set_up_temporary_text_mapping(pgd); in set_up_temporary_mappings()
118 result = kernel_ident_mapping_init(&info, pgd, mstart, mend); in set_up_temporary_mappings()
123 temp_pgt = __pa(pgd); in set_up_temporary_mappings()
/linux-6.15/arch/mips/mm/
H A Dhugetlbpage.c27 pgd_t *pgd; in huge_pte_alloc() local
32 pgd = pgd_offset(mm, addr); in huge_pte_alloc()
33 p4d = p4d_alloc(mm, pgd, addr); in huge_pte_alloc()
44 pgd_t *pgd; in huge_pte_offset() local
49 pgd = pgd_offset(mm, addr); in huge_pte_offset()
50 if (pgd_present(*pgd)) { in huge_pte_offset()
51 p4d = p4d_offset(pgd, addr); in huge_pte_offset()
/linux-6.15/arch/x86/kernel/acpi/
H A Dmadt_wakeup.c82 pgd_t *pgd; in acpi_mp_setup_reset() local
84 pgd = alloc_pgt_page(NULL); in acpi_mp_setup_reset()
85 if (!pgd) in acpi_mp_setup_reset()
91 if (kernel_ident_mapping_init(&info, pgd, mstart, mend)) { in acpi_mp_setup_reset()
92 kernel_ident_mapping_free(&info, pgd); in acpi_mp_setup_reset()
99 if (kernel_ident_mapping_init(&info, pgd, mstart, mend)) { in acpi_mp_setup_reset()
100 kernel_ident_mapping_free(&info, pgd); in acpi_mp_setup_reset()
114 if (kernel_ident_mapping_init(&info, pgd, mstart, mend)) { in acpi_mp_setup_reset()
115 kernel_ident_mapping_free(&info, pgd); in acpi_mp_setup_reset()
124 acpi_mp_pgd = __pa(pgd); in acpi_mp_setup_reset()
/linux-6.15/arch/x86/kernel/
H A Dmachine_kexec_32.c45 free_pages((unsigned long)image->arch.pgd, pgd_allocation_order()); in machine_kexec_free_page_tables()
46 image->arch.pgd = NULL; in machine_kexec_free_page_tables()
69 if (!image->arch.pgd || in machine_kexec_alloc_page_tables()
80 pgd_t *pgd, pmd_t *pmd, pte_t *pte, in machine_kexec_page_table_set_one() argument
86 pgd += pgd_index(vaddr); in machine_kexec_page_table_set_one()
88 if (!(pgd_val(*pgd) & _PAGE_PRESENT)) in machine_kexec_page_table_set_one()
89 set_pgd(pgd, __pgd(__pa(pmd) | _PAGE_PRESENT)); in machine_kexec_page_table_set_one()
91 p4d = p4d_offset(pgd, vaddr); in machine_kexec_page_table_set_one()
110 image->arch.pgd, pmd, image->arch.pte0, in machine_kexec_prepare_page_tables()
116 image->arch.pgd, pmd, image->arch.pte1, in machine_kexec_prepare_page_tables()
[all …]
/linux-6.15/arch/hexagon/include/asm/
H A Dpgalloc.h23 pgd_t *pgd; in pgd_alloc() local
25 pgd = __pgd_alloc(mm, 0); in pgd_alloc()
35 memcpy(pgd, swapper_pg_dir, PTRS_PER_PGD*sizeof(pgd_t)); in pgd_alloc()
39 mm->context.ptbase = __pa(pgd); in pgd_alloc()
41 return pgd; in pgd_alloc()
83 pmdindex = (pgd_t *)pmd - mm->pgd; in pmd_populate_kernel()
84 ppmd = (pmd_t *)current->active_mm->pgd + pmdindex; in pmd_populate_kernel()
/linux-6.15/arch/loongarch/mm/
H A Dhugetlbpage.c19 pgd_t *pgd; in huge_pte_alloc() local
24 pgd = pgd_offset(mm, addr); in huge_pte_alloc()
25 p4d = p4d_alloc(mm, pgd, addr); in huge_pte_alloc()
36 pgd_t *pgd; in huge_pte_offset() local
41 pgd = pgd_offset(mm, addr); in huge_pte_offset()
42 if (pgd_present(pgdp_get(pgd))) { in huge_pte_offset()
43 p4d = p4d_offset(pgd, addr); in huge_pte_offset()
/linux-6.15/arch/x86/xen/
H A Dmmu_pv.c428 return pte_mfn_to_pfn(pgd.pgd); in xen_pgd_val()
442 pgd = pte_pfn_to_mfn(pgd); in xen_make_pgd()
687 if (pgd_none(pgd[i])) in __xen_pgd_walk()
1180 pgd_t *pgd; in xen_cleanmfnmap() local
1186 pgd = pgd_offset_k(vaddr); in xen_cleanmfnmap()
1187 p4d = p4d_offset(pgd, 0); in xen_cleanmfnmap()
1455 pgd_t *pgd = mm->pgd; in xen_pgd_alloc() local
1793 l3 = m2v(pgd[pgd_index(__START_KERNEL_map)].pgd); in xen_setup_kernel_pagetable()
1901 pgd_t pgd; in xen_early_virt_to_phys() local
1909 if (!pgd_present(pgd)) in xen_early_virt_to_phys()
[all …]
/linux-6.15/arch/x86/platform/efi/
H A Defi_64.c70 pgd_t *pgd, *efi_pgd; in efi_alloc_page_tables() local
80 pgd = efi_pgd + pgd_index(EFI_VA_END); in efi_alloc_page_tables()
81 p4d = p4d_alloc(&init_mm, pgd, EFI_VA_END); in efi_alloc_page_tables()
89 efi_mm.pgd = efi_pgd; in efi_alloc_page_tables()
97 free_page((unsigned long)pgd_page_vaddr(*pgd)); in efi_alloc_page_tables()
113 pgd_t *efi_pgd = efi_mm.pgd; in efi_sync_low_kernel_mappings()
183 pgd_t *pgd = efi_mm.pgd; in efi_setup_page_tables() local
218 if (sev_es_efi_map_ghcbs(pgd)) { in efi_setup_page_tables()
243 if (kernel_unmap_pages_in_pgd(pgd, text, npages)) { in efi_setup_page_tables()
274 pgd_t *pgd = efi_mm.pgd; in __map_region() local
[all …]
/linux-6.15/arch/parisc/mm/
H A Dhugetlbpage.c29 pgd_t *pgd; in huge_pte_alloc() local
42 pgd = pgd_offset(mm, addr); in huge_pte_alloc()
43 p4d = p4d_offset(pgd, addr); in huge_pte_alloc()
56 pgd_t *pgd; in huge_pte_offset() local
64 pgd = pgd_offset(mm, addr); in huge_pte_offset()
65 if (!pgd_none(*pgd)) { in huge_pte_offset()
66 p4d = p4d_offset(pgd, addr); in huge_pte_offset()
/linux-6.15/arch/um/kernel/
H A Dtlb.c138 static inline int update_p4d_range(pgd_t *pgd, unsigned long addr, in update_p4d_range() argument
146 p4d = p4d_offset(pgd, addr); in update_p4d_range()
163 pgd_t *pgd; in um_tlb_sync() local
180 pgd = pgd_offset(mm, addr); in um_tlb_sync()
183 if (!pgd_present(*pgd)) { in um_tlb_sync()
184 if (pgd_needsync(*pgd)) { in um_tlb_sync()
187 pgd_mkuptodate(*pgd); in um_tlb_sync()
190 ret = update_p4d_range(pgd, addr, next, &ops); in um_tlb_sync()
191 } while (pgd++, addr = next, in um_tlb_sync()

12345678910>>...14