Home
last modified time | relevance | path

Searched refs:ptep (Results 1 – 25 of 200) sorted by relevance

12345678

/Linux-v5.15/arch/s390/mm/
Dpgtable.c48 pte_t *ptep, int nodat) in ptep_ipte_local() argument
61 __ptep_ipte(addr, ptep, opt, asce, IPTE_LOCAL); in ptep_ipte_local()
63 __ptep_ipte(addr, ptep, 0, 0, IPTE_LOCAL); in ptep_ipte_local()
68 pte_t *ptep, int nodat) in ptep_ipte_global() argument
81 __ptep_ipte(addr, ptep, opt, asce, IPTE_GLOBAL); in ptep_ipte_global()
83 __ptep_ipte(addr, ptep, 0, 0, IPTE_GLOBAL); in ptep_ipte_global()
88 unsigned long addr, pte_t *ptep, in ptep_flush_direct() argument
93 old = *ptep; in ptep_flush_direct()
99 ptep_ipte_local(mm, addr, ptep, nodat); in ptep_flush_direct()
101 ptep_ipte_global(mm, addr, ptep, nodat); in ptep_flush_direct()
[all …]
/Linux-v5.15/arch/arm64/mm/
Dhugetlbpage.c104 pte_t *ptep, size_t *pgsize) in find_num_contig() argument
115 if ((pte_t *)pmdp == ptep) { in find_num_contig()
158 pte_t *ptep, in get_clear_flush() argument
162 pte_t orig_pte = huge_ptep_get(ptep); in get_clear_flush()
166 for (i = 0; i < ncontig; i++, addr += pgsize, ptep++) { in get_clear_flush()
167 pte_t pte = ptep_get_and_clear(mm, addr, ptep); in get_clear_flush()
199 pte_t *ptep, in clear_flush() argument
206 for (i = 0; i < ncontig; i++, addr += pgsize, ptep++) in clear_flush()
207 pte_clear(mm, addr, ptep); in clear_flush()
213 pte_t *ptep, pte_t pte) in set_huge_pte_at() argument
[all …]
/Linux-v5.15/arch/s390/include/asm/
Dhugetlb.h19 pte_t *ptep, pte_t pte);
20 pte_t huge_ptep_get(pte_t *ptep);
22 unsigned long addr, pte_t *ptep);
45 pte_t *ptep, unsigned long sz) in huge_pte_clear() argument
47 if ((pte_val(*ptep) & _REGION_ENTRY_TYPE_MASK) == _REGION_ENTRY_TYPE_R3) in huge_pte_clear()
48 pte_val(*ptep) = _REGION3_ENTRY_EMPTY; in huge_pte_clear()
50 pte_val(*ptep) = _SEGMENT_ENTRY_EMPTY; in huge_pte_clear()
54 unsigned long address, pte_t *ptep) in huge_ptep_clear_flush() argument
56 huge_ptep_get_and_clear(vma->vm_mm, address, ptep); in huge_ptep_clear_flush()
60 unsigned long addr, pte_t *ptep, in huge_ptep_set_access_flags() argument
[all …]
/Linux-v5.15/tools/testing/selftests/kvm/lib/aarch64/
Dprocessor.c92 uint64_t *ptep; in _virt_pg_map() local
108 ptep = addr_gpa2hva(vm, vm->pgd) + pgd_index(vm, vaddr) * 8; in _virt_pg_map()
109 if (!*ptep) in _virt_pg_map()
110 *ptep = vm_alloc_page_table(vm) | 3; in _virt_pg_map()
114 ptep = addr_gpa2hva(vm, pte_addr(vm, *ptep)) + pud_index(vm, vaddr) * 8; in _virt_pg_map()
115 if (!*ptep) in _virt_pg_map()
116 *ptep = vm_alloc_page_table(vm) | 3; in _virt_pg_map()
119 ptep = addr_gpa2hva(vm, pte_addr(vm, *ptep)) + pmd_index(vm, vaddr) * 8; in _virt_pg_map()
120 if (!*ptep) in _virt_pg_map()
121 *ptep = vm_alloc_page_table(vm) | 3; in _virt_pg_map()
[all …]
/Linux-v5.15/include/asm-generic/
Dhugetlb.h37 pte_t *ptep, unsigned long sz) in huge_pte_clear() argument
39 pte_clear(mm, addr, ptep); in huge_pte_clear()
54 pte_t *ptep, pte_t pte) in set_huge_pte_at() argument
56 set_pte_at(mm, addr, ptep, pte); in set_huge_pte_at()
62 unsigned long addr, pte_t *ptep) in huge_ptep_get_and_clear() argument
64 return ptep_get_and_clear(mm, addr, ptep); in huge_ptep_get_and_clear()
70 unsigned long addr, pte_t *ptep) in huge_ptep_clear_flush() argument
72 ptep_clear_flush(vma, addr, ptep); in huge_ptep_clear_flush()
107 unsigned long addr, pte_t *ptep) in huge_ptep_set_wrprotect() argument
109 ptep_set_wrprotect(mm, addr, ptep); in huge_ptep_set_wrprotect()
[all …]
/Linux-v5.15/arch/arm64/kvm/hyp/
Dpgtable.c140 static void kvm_clear_pte(kvm_pte_t *ptep) in kvm_clear_pte() argument
142 WRITE_ONCE(*ptep, 0); in kvm_clear_pte()
145 static void kvm_set_table_pte(kvm_pte_t *ptep, kvm_pte_t *childp, in kvm_set_table_pte() argument
148 kvm_pte_t old = *ptep, pte = kvm_phys_to_pte(mm_ops->virt_to_phys(childp)); in kvm_set_table_pte()
154 smp_store_release(ptep, pte); in kvm_set_table_pte()
176 u32 level, kvm_pte_t *ptep, in kvm_pgtable_visitor_cb() argument
180 return walker->cb(addr, data->end, level, ptep, flag, walker->arg); in kvm_pgtable_visitor_cb()
187 kvm_pte_t *ptep, u32 level) in __kvm_pgtable_visit() argument
191 kvm_pte_t *childp, pte = *ptep; in __kvm_pgtable_visit()
196 ret = kvm_pgtable_visitor_cb(data, addr, level, ptep, in __kvm_pgtable_visit()
[all …]
/Linux-v5.15/arch/xtensa/include/asm/
Dpgalloc.h24 #define pmd_populate_kernel(mm, pmdp, ptep) \ argument
25 (pmd_val(*(pmdp)) = ((unsigned long)ptep))
35 static inline void ptes_clear(pte_t *ptep) in ptes_clear() argument
40 pte_clear(NULL, 0, ptep + i); in ptes_clear()
45 pte_t *ptep; in pte_alloc_one_kernel() local
47 ptep = (pte_t *)__pte_alloc_one_kernel(mm); in pte_alloc_one_kernel()
48 if (!ptep) in pte_alloc_one_kernel()
50 ptes_clear(ptep); in pte_alloc_one_kernel()
51 return ptep; in pte_alloc_one_kernel()
Dpgtable.h257 #define pte_clear(mm,addr,ptep) \ argument
258 do { update_pte(ptep, __pte(_PAGE_CA_INVALID | _PAGE_USER)); } while (0)
307 static inline void update_pte(pte_t *ptep, pte_t pteval) in update_pte() argument
309 *ptep = pteval; in update_pte()
311 __asm__ __volatile__ ("dhwb %0, 0" :: "a" (ptep)); in update_pte()
319 set_pte_at(struct mm_struct *mm, unsigned long addr, pte_t *ptep, pte_t pteval) in set_pte_at() argument
321 update_pte(ptep, pteval); in set_pte_at()
324 static inline void set_pte(pte_t *ptep, pte_t pteval) in set_pte() argument
326 update_pte(ptep, pteval); in set_pte()
339 pte_t *ptep) in ptep_test_and_clear_young() argument
[all …]
/Linux-v5.15/arch/sparc/include/asm/
Dhugetlb.h17 pte_t *ptep, pte_t pte);
21 pte_t *ptep);
25 unsigned long addr, pte_t *ptep) in huge_ptep_clear_flush() argument
31 unsigned long addr, pte_t *ptep) in huge_ptep_set_wrprotect() argument
33 pte_t old_pte = *ptep; in huge_ptep_set_wrprotect()
34 set_huge_pte_at(mm, addr, ptep, pte_wrprotect(old_pte)); in huge_ptep_set_wrprotect()
39 unsigned long addr, pte_t *ptep, in huge_ptep_set_access_flags() argument
42 int changed = !pte_same(*ptep, pte); in huge_ptep_set_access_flags()
44 set_huge_pte_at(vma->vm_mm, addr, ptep, pte); in huge_ptep_set_access_flags()
/Linux-v5.15/arch/parisc/mm/
Dhugetlbpage.c123 pte_t *ptep, pte_t entry) in __set_huge_pte_at() argument
132 set_pte(ptep, entry); in __set_huge_pte_at()
133 ptep++; in __set_huge_pte_at()
143 pte_t *ptep, pte_t entry) in set_huge_pte_at() argument
145 __set_huge_pte_at(mm, addr, ptep, entry); in set_huge_pte_at()
150 pte_t *ptep) in huge_ptep_get_and_clear() argument
154 entry = *ptep; in huge_ptep_get_and_clear()
155 __set_huge_pte_at(mm, addr, ptep, __pte(0)); in huge_ptep_get_and_clear()
162 unsigned long addr, pte_t *ptep) in huge_ptep_set_wrprotect() argument
166 old_pte = *ptep; in huge_ptep_set_wrprotect()
[all …]
/Linux-v5.15/arch/powerpc/include/asm/nohash/64/
Dpgtable.h193 pte_t *ptep, unsigned long clr, in pte_update() argument
197 unsigned long old = pte_val(*ptep); in pte_update()
198 *ptep = __pte((old & ~clr) | set); in pte_update()
213 unsigned long addr, pte_t *ptep) in __ptep_test_and_clear_young() argument
217 if (pte_young(*ptep)) in __ptep_test_and_clear_young()
219 old = pte_update(mm, addr, ptep, _PAGE_ACCESSED, 0, 0); in __ptep_test_and_clear_young()
232 pte_t *ptep) in ptep_set_wrprotect() argument
235 if ((pte_val(*ptep) & _PAGE_RW) == 0) in ptep_set_wrprotect()
238 pte_update(mm, addr, ptep, _PAGE_RW, 0, 0); in ptep_set_wrprotect()
243 unsigned long addr, pte_t *ptep) in huge_ptep_set_wrprotect() argument
[all …]
/Linux-v5.15/arch/powerpc/mm/book3s64/
Dhash_hugetlbpage.c20 pte_t *ptep, unsigned long trap, unsigned long flags, in __hash_page_huge() argument
48 old_pte = pte_val(*ptep); in __hash_page_huge()
63 } while(!pte_xchg(ptep, __pte(old_pte), __pte(new_pte))); in __hash_page_huge()
74 rpte = __real_pte(__pte(old_pte), ptep, offset); in __hash_page_huge()
110 *ptep = __pte(old_pte); in __hash_page_huge()
116 new_pte |= pte_set_hidx(ptep, rpte, 0, slot, offset); in __hash_page_huge()
122 *ptep = __pte(new_pte & ~H_PAGE_BUSY); in __hash_page_huge()
127 unsigned long addr, pte_t *ptep) in huge_ptep_modify_prot_start() argument
135 pte_val = pte_update(vma->vm_mm, addr, ptep, in huge_ptep_modify_prot_start()
142 pte_t *ptep, pte_t old_pte, pte_t pte) in huge_ptep_modify_prot_commit() argument
[all …]
Dhash_64k.c37 pte_t *ptep, unsigned long trap, unsigned long flags, in __hash_page_4K() argument
52 pte_t pte = READ_ONCE(*ptep); in __hash_page_4K()
69 } while (!pte_xchg(ptep, __pte(old_pte), __pte(new_pte))); in __hash_page_4K()
89 rpte = __real_pte(__pte(old_pte), ptep, PTRS_PER_PTE); in __hash_page_4K()
129 *ptep = __pte(new_pte & ~H_PAGE_BUSY); in __hash_page_4K()
210 *ptep = __pte(old_pte); in __hash_page_4K()
216 new_pte |= pte_set_hidx(ptep, rpte, subpg_index, slot, PTRS_PER_PTE); in __hash_page_4K()
219 *ptep = __pte(new_pte & ~H_PAGE_BUSY); in __hash_page_4K()
224 unsigned long vsid, pte_t *ptep, unsigned long trap, in __hash_page_64K() argument
238 pte_t pte = READ_ONCE(*ptep); in __hash_page_64K()
[all …]
Dradix_pgtable.c79 pte_t *ptep; in early_map_kernel_page() local
90 ptep = (pte_t *)pudp; in early_map_kernel_page()
100 ptep = pmdp_ptep(pmdp); in early_map_kernel_page()
104 ptep = early_alloc_pgtable(PAGE_SIZE, nid, in early_map_kernel_page()
106 pmd_populate_kernel(&init_mm, pmdp, ptep); in early_map_kernel_page()
108 ptep = pte_offset_kernel(pmdp, ea); in early_map_kernel_page()
111 set_pte_at(&init_mm, ea, ptep, pfn_pte(pfn, flags)); in early_map_kernel_page()
131 pte_t *ptep; in __map_kernel_page() local
156 ptep = (pte_t *)pudp; in __map_kernel_page()
163 ptep = pmdp_ptep(pmdp); in __map_kernel_page()
[all …]
/Linux-v5.15/arch/powerpc/include/asm/book3s/32/
Dpgtable.h253 #define pte_clear(mm, addr, ptep) \ argument
254 do { pte_update(mm, addr, ptep, ~_PAGE_HASHPTE, 0, 0); } while (0)
277 static inline void flush_hash_entry(struct mm_struct *mm, pte_t *ptep, unsigned long addr) in flush_hash_entry() argument
280 unsigned long ptephys = __pa(ptep) & PAGE_MASK; in flush_hash_entry()
332 unsigned long addr, pte_t *ptep) in __ptep_test_and_clear_young() argument
335 old = pte_update(mm, addr, ptep, _PAGE_ACCESSED, 0, 0); in __ptep_test_and_clear_young()
337 flush_hash_entry(mm, ptep, addr); in __ptep_test_and_clear_young()
346 pte_t *ptep) in ptep_get_and_clear() argument
348 return __pte(pte_update(mm, addr, ptep, ~_PAGE_HASHPTE, 0, 0)); in ptep_get_and_clear()
353 pte_t *ptep) in ptep_set_wrprotect() argument
[all …]
/Linux-v5.15/arch/x86/xen/
Dp2m.c220 pte_t *ptep; in xen_build_mfn_list_list() local
248 ptep = lookup_address((unsigned long)(xen_p2m_addr + pfn), in xen_build_mfn_list_list()
250 BUG_ON(!ptep || level != PG_LEVEL_4K); in xen_build_mfn_list_list()
251 mfn = pte_mfn(*ptep); in xen_build_mfn_list_list()
252 ptep = (pte_t *)((unsigned long)ptep & ~(PAGE_SIZE - 1)); in xen_build_mfn_list_list()
258 if (ptep == p2m_missing_pte || ptep == p2m_identity_pte) { in xen_build_mfn_list_list()
336 pte_t *ptep; in xen_rebuild_p2m_list() local
384 ptep = populate_extra_pte((unsigned long)(p2m + pfn)); in xen_rebuild_p2m_list()
385 set_pte(ptep, in xen_rebuild_p2m_list()
394 ptep = populate_extra_pte((unsigned long)(p2m + pfn)); in xen_rebuild_p2m_list()
[all …]
/Linux-v5.15/arch/powerpc/include/asm/book3s/64/
Dradix.h140 extern void radix__ptep_set_access_flags(struct vm_area_struct *vma, pte_t *ptep,
145 unsigned long addr, pte_t *ptep,
148 static inline unsigned long __radix_pte_update(pte_t *ptep, unsigned long clr, in __radix_pte_update() argument
159 : "=&r" (old_be), "=&r" (tmp_be), "=m" (*ptep) in __radix_pte_update()
160 : "r" (ptep), "r" (cpu_to_be64(set)), "r" (cpu_to_be64(clr)) in __radix_pte_update()
168 pte_t *ptep, unsigned long clr, in radix__pte_update() argument
174 old_pte = __radix_pte_update(ptep, clr, set); in radix__pte_update()
183 pte_t *ptep, int full) in radix__ptep_get_and_clear_full() argument
188 old_pte = pte_val(*ptep); in radix__ptep_get_and_clear_full()
189 *ptep = __pte(0); in radix__ptep_get_and_clear_full()
[all …]
Dhash.h147 pte_t *ptep, unsigned long pte, int huge);
152 pte_t *ptep, unsigned long clr, in hash__pte_update() argument
167 : "=&r" (old_be), "=&r" (tmp_be), "=m" (*ptep) in hash__pte_update()
168 : "r" (ptep), "r" (cpu_to_be64(clr)), "m" (*ptep), in hash__pte_update()
177 hpte_need_flush(mm, addr, ptep, old, huge); in hash__pte_update()
185 static inline void hash__ptep_set_access_flags(pte_t *ptep, pte_t entry) in hash__ptep_set_access_flags() argument
201 :"=&r" (old), "=&r" (tmp), "=m" (*ptep) in hash__ptep_set_access_flags()
202 :"r" (val), "r" (ptep), "m" (*ptep), "r" (cpu_to_be64(H_PAGE_BUSY)) in hash__ptep_set_access_flags()
225 pte_t *ptep, pte_t pte, int percpu) in hash__set_pte_at() argument
231 *ptep = pte; in hash__set_pte_at()
/Linux-v5.15/arch/mips/include/asm/
Dhugetlb.h35 unsigned long addr, pte_t *ptep) in huge_ptep_get_and_clear() argument
38 pte_t pte = *ptep; in huge_ptep_get_and_clear()
41 set_pte_at(mm, addr, ptep, clear); in huge_ptep_get_and_clear()
47 unsigned long addr, pte_t *ptep) in huge_ptep_clear_flush() argument
54 huge_ptep_get_and_clear(vma->vm_mm, addr, ptep); in huge_ptep_clear_flush()
68 pte_t *ptep, pte_t pte, in huge_ptep_set_access_flags() argument
71 int changed = !pte_same(*ptep, pte); in huge_ptep_set_access_flags()
74 set_pte_at(vma->vm_mm, addr, ptep, pte); in huge_ptep_set_access_flags()
/Linux-v5.15/arch/arm64/include/asm/
Dhugetlb.h30 pte_t *ptep, pte_t pte);
33 unsigned long addr, pte_t *ptep,
37 unsigned long addr, pte_t *ptep);
40 unsigned long addr, pte_t *ptep);
43 unsigned long addr, pte_t *ptep);
46 pte_t *ptep, unsigned long sz);
48 pte_t *ptep, pte_t pte, unsigned long sz);
/Linux-v5.15/drivers/iommu/
Dio-pgtable-arm.c241 static void __arm_lpae_sync_pte(arm_lpae_iopte *ptep, int num_entries, in __arm_lpae_sync_pte() argument
244 dma_sync_single_for_device(cfg->iommu_dev, __arm_lpae_dma_addr(ptep), in __arm_lpae_sync_pte()
245 sizeof(*ptep) * num_entries, DMA_TO_DEVICE); in __arm_lpae_sync_pte()
248 static void __arm_lpae_clear_pte(arm_lpae_iopte *ptep, struct io_pgtable_cfg *cfg) in __arm_lpae_clear_pte() argument
251 *ptep = 0; in __arm_lpae_clear_pte()
254 __arm_lpae_sync_pte(ptep, 1, cfg); in __arm_lpae_clear_pte()
260 int lvl, arm_lpae_iopte *ptep);
264 int lvl, int num_entries, arm_lpae_iopte *ptep) in __arm_lpae_init_pte() argument
277 ptep[i] = pte | paddr_to_iopte(paddr + i * sz, data); in __arm_lpae_init_pte()
280 __arm_lpae_sync_pte(ptep, num_entries, cfg); in __arm_lpae_init_pte()
[all …]
Dio-pgtable-arm-v7s.c298 static void __arm_v7s_pte_sync(arm_v7s_iopte *ptep, int num_entries, in __arm_v7s_pte_sync() argument
304 dma_sync_single_for_device(cfg->iommu_dev, __arm_v7s_dma_addr(ptep), in __arm_v7s_pte_sync()
305 num_entries * sizeof(*ptep), DMA_TO_DEVICE); in __arm_v7s_pte_sync()
307 static void __arm_v7s_set_pte(arm_v7s_iopte *ptep, arm_v7s_iopte pte, in __arm_v7s_set_pte() argument
313 ptep[i] = pte; in __arm_v7s_set_pte()
315 __arm_v7s_pte_sync(ptep, num_entries, cfg); in __arm_v7s_set_pte()
416 int lvl, int num_entries, arm_v7s_iopte *ptep) in arm_v7s_init_pte() argument
423 if (ARM_V7S_PTE_IS_TABLE(ptep[i], lvl)) { in arm_v7s_init_pte()
431 tblp = ptep - ARM_V7S_LVL_IDX(iova, lvl, cfg); in arm_v7s_init_pte()
435 } else if (ptep[i]) { in arm_v7s_init_pte()
[all …]
/Linux-v5.15/arch/powerpc/mm/
Dpgtable.c187 void set_pte_at(struct mm_struct *mm, unsigned long addr, pte_t *ptep, in set_pte_at() argument
194 VM_WARN_ON(pte_hw_valid(*ptep) && !pte_protnone(*ptep)); in set_pte_at()
203 __set_pte_at(mm, addr, ptep, pte, 0); in set_pte_at()
214 pte_t *ptep, pte_t entry, int dirty) in ptep_set_access_flags() argument
218 changed = !pte_same(*(ptep), entry); in ptep_set_access_flags()
221 __ptep_set_access_flags(vma, ptep, entry, in ptep_set_access_flags()
229 unsigned long addr, pte_t *ptep, in huge_ptep_set_access_flags() argument
238 ptep_set_access_flags(vma, addr, ptep, pte, dirty); in huge_ptep_set_access_flags()
244 changed = !pte_same(*(ptep), pte); in huge_ptep_set_access_flags()
252 assert_spin_locked(huge_pte_lockptr(h, vma->vm_mm, ptep)); in huge_ptep_set_access_flags()
[all …]
/Linux-v5.15/arch/powerpc/kvm/
Dbook3s_64_mmu_radix.c362 static unsigned long kvmppc_radix_update_pte(struct kvm *kvm, pte_t *ptep, in kvmppc_radix_update_pte() argument
366 return __radix_pte_update(ptep, clr, set); in kvmppc_radix_update_pte()
370 pte_t *ptep, pte_t pte) in kvmppc_radix_set_pte_at() argument
372 radix__set_pte_at(kvm->mm, addr, ptep, pte, 0); in kvmppc_radix_set_pte_at()
389 static void kvmppc_pte_free(pte_t *ptep) in kvmppc_pte_free() argument
391 kmem_cache_free(kvm_pte_cache, ptep); in kvmppc_pte_free()
612 pte_t *ptep, *new_ptep = NULL; in kvmppc_create_pte() local
751 ptep = pte_offset_kernel(pmd, gpa); in kvmppc_create_pte()
752 if (pte_present(*ptep)) { in kvmppc_create_pte()
754 if (pte_raw(*ptep) == pte_raw(pte)) { in kvmppc_create_pte()
[all …]
/Linux-v5.15/arch/powerpc/mm/nohash/
D8xx.c62 pte_t *ptep = memblock_alloc(sizeof(pte_basic_t), SZ_4K); in early_hugepd_alloc_kernel() local
64 if (!ptep) in early_hugepd_alloc_kernel()
67 hugepd_populate_kernel((hugepd_t *)pmdp, ptep, PAGE_SHIFT_8M); in early_hugepd_alloc_kernel()
68 hugepd_populate_kernel((hugepd_t *)pmdp + 1, ptep, PAGE_SHIFT_8M); in early_hugepd_alloc_kernel()
77 pte_t *ptep; in __early_map_kernel_hugepage() local
87 ptep = early_pte_alloc_kernel(pmdp, va); in __early_map_kernel_hugepage()
89 ptep = early_hugepd_alloc_kernel((hugepd_t *)pmdp, va); in __early_map_kernel_hugepage()
92 ptep = pte_offset_kernel(pmdp, va); in __early_map_kernel_hugepage()
94 ptep = hugepte_offset(*(hugepd_t *)pmdp, va, PGDIR_SHIFT); in __early_map_kernel_hugepage()
97 if (WARN_ON(!ptep)) in __early_map_kernel_hugepage()
[all …]

12345678