Searched refs:ptdesc (Results 1 - 24 of 24) sorted by relevance

/linux-master/include/asm-generic/
H A Dpgalloc.h21 struct ptdesc *ptdesc = pagetable_alloc(GFP_PGTABLE_KERNEL & local
24 if (!ptdesc)
26 return ptdesc_address(ptdesc);
57 * Allocate memory for a page table and ptdesc and runs pagetable_pte_ctor().
62 * Return: `struct page` referencing the ptdesc or %NULL on error
66 struct ptdesc *ptdesc; local
68 ptdesc = pagetable_alloc(gfp, 0);
69 if (!ptdesc)
106 struct ptdesc *ptdesc = page_ptdesc(pte_page); local
129 struct ptdesc *ptdesc; local
148 struct ptdesc *ptdesc = virt_to_ptdesc(pmd); local
163 struct ptdesc *ptdesc; local
195 struct ptdesc *ptdesc = virt_to_ptdesc(pud); local
[all...]
H A Dtlb.h497 static inline void tlb_remove_page_ptdesc(struct mmu_gather *tlb, struct ptdesc *pt)
/linux-master/arch/powerpc/mm/
H A Dpgtable-frag.c21 struct ptdesc *ptdesc; local
23 ptdesc = virt_to_ptdesc(pte_frag);
27 if (atomic_sub_and_test(PTE_FRAG_NR - count, &ptdesc->pt_frag_refcount)) {
28 pagetable_pte_dtor(ptdesc);
29 pagetable_free(ptdesc);
58 struct ptdesc *ptdesc; local
61 ptdesc = pagetable_alloc(PGALLOC_GFP | __GFP_ACCOUNT, 0);
62 if (!ptdesc)
111 struct ptdesc *ptdesc; local
120 struct ptdesc *ptdesc = virt_to_ptdesc(table); local
[all...]
/linux-master/arch/m68k/include/asm/
H A Dmcf_pgalloc.h17 struct ptdesc *ptdesc = pagetable_alloc((GFP_DMA | __GFP_ZERO) & local
20 if (!ptdesc)
23 return ptdesc_address(ptdesc);
38 struct ptdesc *ptdesc = virt_to_ptdesc(pgtable); local
40 pagetable_pte_dtor(ptdesc);
41 pagetable_free(ptdesc);
46 struct ptdesc *ptdesc local
62 struct ptdesc *ptdesc = virt_to_ptdesc(pgtable); local
82 struct ptdesc *ptdesc = pagetable_alloc((GFP_DMA | __GFP_NOWARN) & local
[all...]
/linux-master/arch/arm/include/asm/
H A Dtlb.h42 struct ptdesc *ptdesc = page_ptdesc(pte); local
44 pagetable_pte_dtor(ptdesc);
55 tlb_remove_ptdesc(tlb, ptdesc);
62 struct ptdesc *ptdesc = virt_to_ptdesc(pmdp); local
64 pagetable_pmd_dtor(ptdesc);
65 tlb_remove_ptdesc(tlb, ptdesc);
/linux-master/arch/mips/include/asm/
H A Dpgalloc.h68 struct ptdesc *ptdesc; local
70 ptdesc = pagetable_alloc(GFP_KERNEL_ACCOUNT, PMD_TABLE_ORDER);
71 if (!ptdesc)
74 if (!pagetable_pmd_ctor(ptdesc)) {
75 pagetable_free(ptdesc);
79 pmd = ptdesc_address(ptdesc);
93 struct ptdesc *ptdesc = pagetable_alloc(GFP_KERNEL & ~__GFP_HIGHMEM, local
96 if (!ptdesc)
[all...]
/linux-master/arch/loongarch/include/asm/
H A Dpgalloc.h58 struct ptdesc *ptdesc; local
60 ptdesc = pagetable_alloc(GFP_KERNEL_ACCOUNT, 0);
61 if (!ptdesc)
64 if (!pagetable_pmd_ctor(ptdesc)) {
65 pagetable_free(ptdesc);
69 pmd = ptdesc_address(ptdesc);
83 struct ptdesc *ptdesc = pagetable_alloc(GFP_KERNEL & ~__GFP_HIGHMEM, 0); local
85 if (!ptdesc)
[all...]
/linux-master/arch/arm64/include/asm/
H A Dtlb.h83 struct ptdesc *ptdesc = page_ptdesc(pte); local
85 pagetable_pte_dtor(ptdesc);
86 tlb_remove_ptdesc(tlb, ptdesc);
93 struct ptdesc *ptdesc = virt_to_ptdesc(pmdp); local
95 pagetable_pmd_dtor(ptdesc);
96 tlb_remove_ptdesc(tlb, ptdesc);
104 struct ptdesc *ptdesc local
[all...]
/linux-master/arch/mips/mm/
H A Dpgtable.c14 struct ptdesc *ptdesc = pagetable_alloc(GFP_KERNEL & ~__GFP_HIGHMEM, local
17 if (ptdesc) {
18 ret = ptdesc_address(ptdesc);
/linux-master/arch/s390/mm/
H A Dpgalloc.c46 struct ptdesc *ptdesc = pagetable_alloc(GFP_KERNEL, CRST_ALLOC_ORDER); local
49 if (!ptdesc)
51 table = ptdesc_to_virt(ptdesc);
138 struct ptdesc *page_table_alloc_pgste(struct mm_struct *mm)
140 struct ptdesc *ptdesc; local
143 ptdesc = pagetable_alloc(GFP_KERNEL, 0);
144 if (ptdesc) {
145 table = (u64 *)ptdesc_to_virt(ptdesc);
153 page_table_free_pgste(struct ptdesc *ptdesc) argument
162 struct ptdesc *ptdesc; local
181 pagetable_pte_dtor_free(struct ptdesc *ptdesc) argument
189 struct ptdesc *ptdesc = virt_to_ptdesc(table); local
196 struct ptdesc *ptdesc = virt_to_ptdesc(table); local
210 struct ptdesc *ptdesc = container_of(head, struct ptdesc, pt_rcu_head); local
217 struct ptdesc *ptdesc = virt_to_ptdesc(pgtable); local
253 struct ptdesc *ptdesc; local
[all...]
H A Dgmap.c209 struct ptdesc *ptdesc, *n; local
212 list_for_each_entry_safe(ptdesc, n, &gmap->pt_list, pt_list)
213 page_table_free_pgste(ptdesc);
1353 struct ptdesc *ptdesc; local
1366 ptdesc = page_ptdesc(phys_to_page(pgt));
1367 list_del(&ptdesc->pt_list);
1368 page_table_free_pgste(ptdesc);
1382 struct ptdesc *ptdes local
2063 struct ptdesc *ptdesc; local
[all...]
/linux-master/arch/riscv/include/asm/
H A Dpgalloc.h102 struct ptdesc *ptdesc = virt_to_ptdesc(pud); local
104 pagetable_pud_dtor(ptdesc);
106 tlb_remove_page_ptdesc(tlb, ptdesc);
108 tlb_remove_ptdesc(tlb, ptdesc);
176 struct ptdesc *ptdesc = virt_to_ptdesc(pmd); local
178 pagetable_pmd_dtor(ptdesc);
180 tlb_remove_page_ptdesc(tlb, ptdesc);
182 tlb_remove_ptdesc(tlb, ptdesc);
190 struct ptdesc *ptdesc = page_ptdesc(pte); local
[all...]
/linux-master/arch/x86/mm/
H A Dpgtable.c63 struct ptdesc *ptdesc = virt_to_ptdesc(pmd); local
72 pagetable_pmd_dtor(ptdesc);
73 paravirt_tlb_remove_table(tlb, ptdesc_page(ptdesc));
79 struct ptdesc *ptdesc = virt_to_ptdesc(pud); local
81 pagetable_pud_dtor(ptdesc);
98 struct ptdesc *ptdesc = virt_to_ptdesc(pgd); local
100 list_add(&ptdesc
105 struct ptdesc *ptdesc = virt_to_ptdesc(pgd); local
219 struct ptdesc *ptdesc; local
243 struct ptdesc *ptdesc = pagetable_alloc(gfp, 0); local
[all...]
/linux-master/arch/powerpc/mm/book3s64/
H A Dpgtable.c388 struct ptdesc *ptdesc; local
393 ptdesc = pagetable_alloc(gfp, 0);
394 if (!ptdesc)
396 if (!pagetable_pmd_ctor(ptdesc)) {
397 pagetable_free(ptdesc);
401 atomic_set(&ptdesc->pt_frag_refcount, 1);
403 ret = ptdesc_address(ptdesc);
418 atomic_set(&ptdesc->pt_frag_refcount, PMD_FRAG_NR);
439 struct ptdesc *ptdes local
[all...]
H A Dmmu_context.c249 struct ptdesc *ptdesc; local
251 ptdesc = virt_to_ptdesc(pmd_frag);
255 if (atomic_sub_and_test(PMD_FRAG_NR - count, &ptdesc->pt_frag_refcount)) {
256 pagetable_pmd_dtor(ptdesc);
257 pagetable_free(ptdesc);
/linux-master/arch/loongarch/mm/
H A Dpgtable.c27 struct ptdesc *ptdesc = pagetable_alloc(GFP_KERNEL & ~__GFP_HIGHMEM, 0); local
29 if (ptdesc) {
30 ret = (pgd_t *)ptdesc_address(ptdesc);
/linux-master/include/linux/
H A Dmm.h2830 static inline struct ptdesc *virt_to_ptdesc(const void *x)
2835 static inline void *ptdesc_to_virt(const struct ptdesc *pt)
2840 static inline void *ptdesc_address(const struct ptdesc *pt)
2845 static inline bool pagetable_is_reserved(struct ptdesc *pt)
2858 * Return: The ptdesc describing the allocated page tables.
2860 static inline struct ptdesc *pagetable_alloc(gfp_t gfp, unsigned int order)
2874 static inline void pagetable_free(struct ptdesc *pt)
2884 bool ptlock_alloc(struct ptdesc *ptdesc);
2885 void ptlock_free(struct ptdesc *ptdes
2887 ptlock_ptr(struct ptdesc *ptdesc) argument
2896 ptlock_alloc(struct ptdesc *ptdesc) argument
2901 ptlock_free(struct ptdesc *ptdesc) argument
2905 ptlock_ptr(struct ptdesc *ptdesc) argument
2916 ptlock_init(struct ptdesc *ptdesc) argument
2941 ptlock_init(struct ptdesc *ptdesc) argument
2942 ptlock_free(struct ptdesc *ptdesc) argument
2945 pagetable_pte_ctor(struct ptdesc *ptdesc) argument
2956 pagetable_pte_dtor(struct ptdesc *ptdesc) argument
3021 pmd_ptlock_init(struct ptdesc *ptdesc) argument
3029 pmd_ptlock_free(struct ptdesc *ptdesc) argument
3046 pmd_ptlock_init(struct ptdesc *ptdesc) argument
3047 pmd_ptlock_free(struct ptdesc *ptdesc) argument
3060 pagetable_pmd_ctor(struct ptdesc *ptdesc) argument
3071 pagetable_pmd_dtor(struct ptdesc *ptdesc) argument
3099 pagetable_pud_ctor(struct ptdesc *ptdesc) argument
3107 pagetable_pud_dtor(struct ptdesc *ptdesc) argument
[all...]
H A Dmm_types.h421 * struct ptdesc - Memory descriptor for page tables.
426 * @pmd_huge_pte: Protected by ptdesc->ptl, used for THPs.
440 struct ptdesc { struct
475 static_assert(offsetof(struct page, pg) == offsetof(struct ptdesc, pt))
488 static_assert(sizeof(struct ptdesc) <= sizeof(struct page));
491 const struct ptdesc *: (const struct page *)(pt), \
492 struct ptdesc *: (struct page *)(pt)))
495 const struct ptdesc *: (const struct folio *)(pt), \
496 struct ptdesc *: (struct folio *)(pt)))
499 const struct page *: (const struct ptdesc *)(
[all...]
/linux-master/arch/s390/include/asm/
H A Dpgalloc.h26 struct ptdesc *page_table_alloc_pgste(struct mm_struct *mm);
28 void page_table_free_pgste(struct ptdesc *ptdesc);
/linux-master/arch/riscv/mm/
H A Dinit.c366 struct ptdesc *ptdesc = pagetable_alloc(GFP_KERNEL & ~__GFP_HIGHMEM, 0); local
368 BUG_ON(!ptdesc || !pagetable_pte_ctor(ptdesc));
369 return __pa((pte_t *)ptdesc_address(ptdesc));
447 struct ptdesc *ptdesc = pagetable_alloc(GFP_KERNEL & ~__GFP_HIGHMEM, 0); local
449 BUG_ON(!ptdesc || !pagetable_pmd_ctor(ptdesc));
450 return __pa((pmd_t *)ptdesc_address(ptdesc));
[all...]
/linux-master/arch/sparc/mm/
H A Dinit_64.c2910 struct ptdesc *ptdesc = pagetable_alloc(GFP_KERNEL | __GFP_ZERO, 0); local
2912 if (!ptdesc)
2914 if (!pagetable_pte_ctor(ptdesc)) {
2915 pagetable_free(ptdesc);
2918 return ptdesc_address(ptdesc);
2928 struct ptdesc *ptdesc = virt_to_ptdesc(pte); local
2930 pagetable_pte_dtor(ptdesc);
2931 pagetable_free(ptdesc);
[all...]
/linux-master/arch/arm64/mm/
H A Dmmu.c471 struct ptdesc *ptdesc = page_ptdesc(phys_to_page(pa)); local
482 BUG_ON(!pagetable_pte_ctor(ptdesc));
484 BUG_ON(!pagetable_pmd_ctor(ptdesc));
/linux-master/arch/arm/mm/
H A Dmmu.c740 void *ptdesc = pagetable_alloc(GFP_PGTABLE_KERNEL & ~__GFP_HIGHMEM, local
743 if (!ptdesc || !pagetable_pte_ctor(ptdesc))
745 return ptdesc_to_virt(ptdesc);
/linux-master/mm/
H A Dmemory.c6427 bool ptlock_alloc(struct ptdesc *ptdesc) argument
6434 ptdesc->ptl = ptl;
6438 void ptlock_free(struct ptdesc *ptdesc) argument
6440 kmem_cache_free(page_ptl_cachep, ptdesc->ptl);

Completed in 218 milliseconds