| /linux/drivers/iommu/amd/ |
| A D | io_pgtable.c | 143 *pte = PM_LEVEL_PDE(pgtable->mode, iommu_virt_to_phys(pgtable->root)); in increase_address_space() 145 pgtable->root = pte; in increase_address_space() 146 pgtable->mode += 1; in increase_address_space() 182 level = pgtable->mode - 1; in alloc_pte() 267 level = pgtable->mode - 1; in fetch_pte() 531 if (pgtable->mode == PAGE_MODE_NONE) in v1_free_pgtable() 535 BUG_ON(pgtable->mode < PAGE_MODE_NONE || in v1_free_pgtable() 538 free_sub_pt(pgtable->root, pgtable->mode, &freelist); in v1_free_pgtable() 547 if (!pgtable->root) in v1_alloc_pgtable() 549 pgtable->mode = PAGE_MODE_3_LEVEL; in v1_alloc_pgtable() [all …]
|
| A D | io_pgtable_v2.c | 201 pte = &pgtable->pgd[PM_LEVEL_INDEX(level, iova)]; in fetch_pte() 237 struct io_pgtable_cfg *cfg = &pgtable->pgtbl.cfg; in iommu_v2_map_pages() 254 pte = v2_alloc_pte(cfg->amd.nid, pgtable->pgd, in iommu_v2_map_pages() 287 struct io_pgtable_cfg *cfg = &pgtable->pgtbl.cfg; in iommu_v2_unmap_pages() 297 pte = fetch_pte(pgtable, iova, &unmap_size); in iommu_v2_unmap_pages() 316 pte = fetch_pte(pgtable, iova, &pte_pgsize); in iommu_v2_iova_to_phys() 333 if (!pgtable || !pgtable->pgd) in v2_free_pgtable() 337 free_pgtable(pgtable->pgd, get_pgtable_level()); in v2_free_pgtable() 338 pgtable->pgd = NULL; in v2_free_pgtable() 347 if (!pgtable->pgd) in v2_alloc_pgtable() [all …]
|
| /linux/drivers/accel/ivpu/ |
| A D | ivpu_mmu_context.c | 98 if (!pgtable->pgd_dma_ptr) in ivpu_mmu_pgtable_init() 101 pgtable->pgd_dma = pgd_dma; in ivpu_mmu_pgtable_init() 114 pud_dma = pgtable->pgd_dma_ptr[pgd_idx]; in ivpu_mmu_pgtables_free() 137 kfree(pgtable->pmd_ptrs[pgd_idx]); in ivpu_mmu_pgtables_free() 138 kfree(pgtable->pte_ptrs[pgd_idx]); in ivpu_mmu_pgtables_free() 142 ivpu_pgtable_free_page(vdev, pgtable->pgd_dma_ptr, pgtable->pgd_dma); in ivpu_mmu_pgtables_free() 160 if (!pgtable->pmd_ptrs[pgd_idx]) in ivpu_mmu_ensure_pud() 165 if (!pgtable->pte_ptrs[pgd_idx]) in ivpu_mmu_ensure_pud() 174 kfree(pgtable->pmd_ptrs[pgd_idx]); in ivpu_mmu_ensure_pud() 570 ctx->pgtable.pgd_dma_ptr = NULL; in ivpu_mmu_context_fini() [all …]
|
| /linux/arch/arm64/kvm/ |
| A D | ptdump.c | 100 struct kvm_pgtable *pgtable = mmu->pgt; in kvm_ptdump_parser_create() local 107 ret = kvm_ptdump_build_levels(&st->level[0], pgtable->start_level); in kvm_ptdump_parser_create() 114 st->ipa_marker[1].start_address = BIT(pgtable->ia_bits); in kvm_ptdump_parser_create() 115 st->range[0].end = BIT(pgtable->ia_bits); in kvm_ptdump_parser_create() 196 struct kvm_pgtable *pgtable = m->private; in kvm_pgtable_range_show() local 198 seq_printf(m, "%2u\n", pgtable->ia_bits); in kvm_pgtable_range_show() 204 struct kvm_pgtable *pgtable = m->private; in kvm_pgtable_levels_show() local 206 seq_printf(m, "%1d\n", KVM_PGTABLE_MAX_LEVELS - pgtable->start_level); in kvm_pgtable_levels_show() 214 struct kvm_pgtable *pgtable; in kvm_pgtable_debugfs_open() local 220 pgtable = kvm->arch.mmu.pgt; in kvm_pgtable_debugfs_open() [all …]
|
| /linux/mm/ |
| A D | pgtable-generic.c | 166 pgtable_t pgtable) in pgtable_trans_huge_deposit() argument 172 INIT_LIST_HEAD(&pgtable->lru); in pgtable_trans_huge_deposit() 174 list_add(&pgtable->lru, &pmd_huge_pte(mm, pmdp)->lru); in pgtable_trans_huge_deposit() 175 pmd_huge_pte(mm, pmdp) = pgtable; in pgtable_trans_huge_deposit() 183 pgtable_t pgtable; in pgtable_trans_huge_withdraw() local 188 pgtable = pmd_huge_pte(mm, pmdp); in pgtable_trans_huge_withdraw() 189 pmd_huge_pte(mm, pmdp) = list_first_entry_or_null(&pgtable->lru, in pgtable_trans_huge_withdraw() 192 list_del(&pgtable->lru); in pgtable_trans_huge_withdraw() 193 return pgtable; in pgtable_trans_huge_withdraw() 247 void pte_free_defer(struct mm_struct *mm, pgtable_t pgtable) in pte_free_defer() argument [all …]
|
| A D | huge_memory.c | 1145 pgtable_t pgtable; in __do_huge_pmd_anonymous_page() local 1215 if (pgtable) in __do_huge_pmd_anonymous_page() 1290 pgtable_t pgtable; in do_huge_pmd_anonymous_page() local 1339 pgtable_t pgtable) in insert_pfn_pmd() argument 1371 if (pgtable) { in insert_pfn_pmd() 1374 pgtable = NULL; in insert_pfn_pmd() 1382 if (pgtable) in insert_pfn_pmd() 1419 if (!pgtable) in vmf_insert_pfn_pmd() 2036 pgtable_t pgtable; in zap_deposited_table() local 2610 pgtable_t pgtable; in __split_huge_zero_page_pmd() local [all …]
|
| A D | hugetlb_vmemmap.c | 57 pte_t *pgtable; in vmemmap_split_pmd() local 59 pgtable = pte_alloc_one_kernel(&init_mm); in vmemmap_split_pmd() 60 if (!pgtable) in vmemmap_split_pmd() 63 pmd_populate_kernel(&init_mm, &__pmd, pgtable); in vmemmap_split_pmd() 86 pmd_populate_kernel(&init_mm, pmd, pgtable); in vmemmap_split_pmd() 90 pte_free_kernel(&init_mm, pgtable); in vmemmap_split_pmd()
|
| /linux/arch/sparc/mm/ |
| A D | tlb.c | 270 pgtable_t pgtable) in pgtable_trans_huge_deposit() argument 272 struct list_head *lh = (struct list_head *) pgtable; in pgtable_trans_huge_deposit() 281 pmd_huge_pte(mm, pmdp) = pgtable; in pgtable_trans_huge_deposit() 287 pgtable_t pgtable; in pgtable_trans_huge_withdraw() local 292 pgtable = pmd_huge_pte(mm, pmdp); in pgtable_trans_huge_withdraw() 293 lh = (struct list_head *) pgtable; in pgtable_trans_huge_withdraw() 300 pte_val(pgtable[0]) = 0; in pgtable_trans_huge_withdraw() 301 pte_val(pgtable[1]) = 0; in pgtable_trans_huge_withdraw() 303 return pgtable; in pgtable_trans_huge_withdraw()
|
| /linux/drivers/gpu/drm/etnaviv/ |
| A D | etnaviv_iommu.c | 93 u32 pgtable; in etnaviv_iommuv1_restore() local 107 pgtable = (u32)v1_context->pgtable_dma; in etnaviv_iommuv1_restore() 109 gpu_write(gpu, VIVS_MC_MMU_FE_PAGE_TABLE, pgtable); in etnaviv_iommuv1_restore() 110 gpu_write(gpu, VIVS_MC_MMU_TX_PAGE_TABLE, pgtable); in etnaviv_iommuv1_restore() 111 gpu_write(gpu, VIVS_MC_MMU_PE_PAGE_TABLE, pgtable); in etnaviv_iommuv1_restore() 112 gpu_write(gpu, VIVS_MC_MMU_PEZ_PAGE_TABLE, pgtable); in etnaviv_iommuv1_restore() 113 gpu_write(gpu, VIVS_MC_MMU_RA_PAGE_TABLE, pgtable); in etnaviv_iommuv1_restore()
|
| /linux/arch/powerpc/mm/book3s64/ |
| A D | hash_pgtable.c | 268 pgtable_t pgtable) in hash__pgtable_trans_huge_deposit() argument 277 *pgtable_slot = pgtable; in hash__pgtable_trans_huge_deposit() 289 pgtable_t pgtable; in hash__pgtable_trans_huge_withdraw() local 295 pgtable = *pgtable_slot; in hash__pgtable_trans_huge_withdraw() 304 memset(pgtable, 0, PTE_FRAG_SIZE); in hash__pgtable_trans_huge_withdraw() 305 return pgtable; in hash__pgtable_trans_huge_withdraw() 349 pgtable_t pgtable; in hash__pmdp_huge_get_and_clear() local 361 pgtable = *pgtable_slot; in hash__pmdp_huge_get_and_clear() 366 memset(pgtable, 0, PTE_FRAG_SIZE); in hash__pmdp_huge_get_and_clear()
|
| /linux/arch/m68k/include/asm/ |
| A D | motorola_pgalloc.h | 42 static inline void pte_free(struct mm_struct *mm, pgtable_t pgtable) in pte_free() argument 44 free_pointer_table(pgtable, TABLE_PTE); in pte_free() 47 static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pgtable, in __pte_free_tlb() argument 50 free_pointer_table(pgtable, TABLE_PTE); in __pte_free_tlb()
|
| A D | mcf_pgalloc.h | 35 static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pgtable, in __pte_free_tlb() argument 38 struct ptdesc *ptdesc = virt_to_ptdesc(pgtable); in __pte_free_tlb() 60 static inline void pte_free(struct mm_struct *mm, pgtable_t pgtable) in pte_free() argument 62 struct ptdesc *ptdesc = virt_to_ptdesc(pgtable); in pte_free()
|
| /linux/drivers/iommu/ |
| A D | exynos-iommu.c | 182 return pgtable + lv1ent_offset(iova); in section_entry() 906 if (!domain->pgtable) in exynos_iommu_domain_alloc_paging() 915 domain->pgtable[i] = ZERO_LV2LINK; in exynos_iommu_domain_alloc_paging() 937 iommu_free_pages(domain->pgtable, 2); in exynos_iommu_domain_alloc_paging() 957 data->pgtable = 0; in exynos_iommu_domain_free() 969 if (lv1ent_page(domain->pgtable + i)) { in exynos_iommu_domain_free() 978 iommu_free_pages(domain->pgtable, 2); in exynos_iommu_domain_free() 1010 data->pgtable = 0; in exynos_iommu_identity_attach() 1053 data->pgtable = pagetable; in exynos_iommu_attach_device() 1242 BUG_ON(domain->pgtable == NULL); in exynos_iommu_map() [all …]
|
| A D | Makefile | 8 obj-$(CONFIG_IOMMU_IO_PGTABLE) += io-pgtable.o 9 obj-$(CONFIG_IOMMU_IO_PGTABLE_ARMV7S) += io-pgtable-arm-v7s.o 10 obj-$(CONFIG_IOMMU_IO_PGTABLE_LPAE) += io-pgtable-arm.o 11 obj-$(CONFIG_IOMMU_IO_PGTABLE_DART) += io-pgtable-dart.o
|
| /linux/arch/x86/boot/compressed/ |
| A D | pgtable_64.c | 104 asmlinkage void configure_5level_paging(struct boot_params *bp, void *pgtable) in configure_5level_paging() argument 198 memcpy(pgtable, trampoline_32bit, PAGE_SIZE); in configure_5level_paging() 199 native_write_cr3((unsigned long)pgtable); in configure_5level_paging()
|
| A D | head_64.S | 201 leal rva(pgtable)(%ebx), %edi 207 leal rva(pgtable + 0)(%ebx), %edi 213 leal rva(pgtable + 0x1000)(%ebx), %edi 224 leal rva(pgtable + 0x2000)(%ebx), %edi 235 leal rva(pgtable)(%ebx), %eax 644 SYM_DATA_LOCAL(pgtable, .fill BOOT_PGT_SIZE, 1, 0)
|
| A D | vmlinux.lds.S | 66 .pgtable : { 68 *(.pgtable) argument
|
| /linux/arch/mips/mm/ |
| A D | Makefile | 14 obj-y += pgtable.o 29 obj-$(CONFIG_32BIT) += ioremap.o pgtable-32.o 30 obj-$(CONFIG_64BIT) += ioremap64.o pgtable-64.o
|
| /linux/arch/powerpc/mm/ |
| A D | pgtable-frag.c | 137 void pte_free_defer(struct mm_struct *mm, pgtable_t pgtable) in pte_free_defer() argument 141 folio = virt_to_folio(pgtable); in pte_free_defer() 143 pte_fragment_free((unsigned long *)pgtable, 0); in pte_free_defer()
|
| A D | Makefile | 6 obj-y := fault.o mem.o pgtable.o maccess.o pageattr.o \ 8 pgtable-frag.o ioremap.o ioremap_$(BITS).o \
|
| /linux/Documentation/features/debug/debug-vm-pgtable/ |
| A D | arch-support.txt | 2 # Feature name: debug-vm-pgtable 4 # description: arch supports pgtable tests for semantics compliance
|
| /linux/arch/arm64/kvm/hyp/ |
| A D | pgtable.c | 236 struct kvm_pgtable_mm_ops *mm_ops, kvm_pteref_t pgtable, s8 level) in __kvm_pgtable_walk() argument 246 kvm_pteref_t pteref = &pgtable[idx]; in __kvm_pgtable_walk() 1398 kvm_pte_t *pgtable; in kvm_pgtable_stage2_create_unlinked() local 1408 pgtable = mm_ops->zalloc_page(mc); in kvm_pgtable_stage2_create_unlinked() 1409 if (!pgtable) in kvm_pgtable_stage2_create_unlinked() 1412 ret = __kvm_pgtable_walk(&data, mm_ops, (kvm_pteref_t)pgtable, in kvm_pgtable_stage2_create_unlinked() 1415 kvm_pgtable_stage2_free_unlinked(mm_ops, pgtable, level); in kvm_pgtable_stage2_create_unlinked() 1419 return pgtable; in kvm_pgtable_stage2_create_unlinked() 1596 kvm_pteref_t ptep = (kvm_pteref_t)pgtable; in kvm_pgtable_stage2_free_unlinked() 1616 WARN_ON(mm_ops->page_count(pgtable) != 1); in kvm_pgtable_stage2_free_unlinked() [all …]
|
| A D | Makefile | 10 obj-$(CONFIG_KVM) += vhe/ nvhe/ pgtable.o
|
| /linux/arch/microblaze/mm/ |
| A D | Makefile | 6 obj-y := consistent.o init.o pgtable.o mmu_context.o fault.o
|
| /linux/arch/powerpc/kvm/ |
| A D | book3s_64_mmu_radix.c | 566 if (kvm->arch.pgtable) { in kvmppc_free_radix() 567 kvmppc_free_pgtable_radix(kvm, kvm->arch.pgtable, in kvmppc_free_radix() 569 pgd_free(kvm->mm, kvm->arch.pgtable); in kvmppc_free_radix() 570 kvm->arch.pgtable = NULL; in kvmppc_free_radix() 615 int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte, in kvmppc_create_pte() argument 628 pgd = pgtable + pgd_index(gpa); in kvmppc_create_pte() 921 ret = kvmppc_create_pte(kvm, kvm->arch.pgtable, pte, gpa, level, in kvmppc_book3s_instantiate_page() 1248 kvm->arch.pgtable = pgd_alloc(kvm->mm); in kvmppc_init_vm_radix() 1249 if (!kvm->arch.pgtable) in kvmppc_init_vm_radix() 1363 pgt = kvm->arch.pgtable; in debugfs_radix_read()
|