Home
last modified time | relevance | path

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

12345678

/linux/arch/s390/mm/
H A Dpgtable.c41 pte_t *ptep, int nodat) in ptep_ipte_local() argument
54 __ptep_ipte(addr, ptep, opt, asce, IPTE_LOCAL); in ptep_ipte_local()
56 __ptep_ipte(addr, ptep, 0, 0, IPTE_LOCAL); in ptep_ipte_local()
61 pte_t *ptep, int nodat) in ptep_ipte_global() argument
74 __ptep_ipte(addr, ptep, opt, asce, IPTE_GLOBAL); in ptep_ipte_global()
76 __ptep_ipte(addr, ptep, 0, 0, IPTE_GLOBAL); in ptep_ipte_global()
81 unsigned long addr, pte_t *ptep, in ptep_flush_direct() argument
86 old = *ptep; in ptep_flush_direct()
92 ptep_ipte_local(mm, addr, ptep, nodat); in ptep_flush_direct()
94 ptep_ipte_global(mm, addr, ptep, nodat); in ptep_flush_direct()
[all …]
/linux/arch/arm64/mm/
H A Dhugetlbpage.c83 pte_t *ptep, size_t *pgsize) in find_num_contig() argument
94 if ((pte_t *)pmdp == ptep) { in find_num_contig()
123 pte_t huge_ptep_get(struct mm_struct *mm, unsigned long addr, pte_t *ptep) in huge_ptep_get() argument
127 pte_t orig_pte = __ptep_get(ptep); in huge_ptep_get()
132 ncontig = find_num_contig(mm, addr, ptep, &pgsize); in huge_ptep_get()
133 for (i = 0; i < ncontig; i++, ptep++) { in huge_ptep_get()
134 pte_t pte = __ptep_get(ptep); in huge_ptep_get()
155 pte_t *ptep, in get_clear_contig() argument
162 pte = __ptep_get_and_clear_anysz(mm, ptep, pgsize); in get_clear_contig()
165 ptep++; in get_clear_contig()
[all …]
/linux/arch/riscv/mm/
H A Dhugetlbpage.c6 pte_t huge_ptep_get(struct mm_struct *mm, unsigned long addr, pte_t *ptep) in huge_ptep_get() argument
10 pte_t orig_pte = ptep_get(ptep); in huge_ptep_get()
17 for (i = 0; i < pte_num; i++, ptep++) { in huge_ptep_get()
18 pte_t pte = ptep_get(ptep); in huge_ptep_get()
150 pte_t *ptep, in get_clear_contig() argument
156 pte = ptep_get_and_clear(mm, addr, ptep); in get_clear_contig()
159 ptep++; in get_clear_contig()
161 tmp_pte = ptep_get_and_clear(mm, addr, ptep); in get_clear_contig()
174 pte_t *ptep, in get_clear_contig_flush() argument
177 pte_t orig_pte = get_clear_contig(mm, addr, ptep, pte_num); in get_clear_contig_flush()
[all …]
/linux/arch/s390/include/asm/
H A Dhugetlb.h22 pte_t *ptep, pte_t pte, unsigned long sz);
24 pte_t *ptep, pte_t pte);
27 pte_t huge_ptep_get(struct mm_struct *mm, unsigned long addr, pte_t *ptep);
30 pte_t *ptep);
34 unsigned long addr, pte_t *ptep, in huge_ptep_get_and_clear() argument
37 return __huge_ptep_get_and_clear(mm, addr, ptep); in huge_ptep_get_and_clear()
48 pte_t *ptep, unsigned long sz) in huge_pte_clear() argument
50 if ((pte_val(*ptep) & _REGION_ENTRY_TYPE_MASK) == _REGION_ENTRY_TYPE_R3) in huge_pte_clear()
51 set_pte(ptep, __pte(_REGION3_ENTRY_EMPTY)); in huge_pte_clear()
53 set_pte(ptep, __pte(_SEGMENT_ENTRY_EMPTY)); in huge_pte_clear()
[all …]
/linux/arch/arm64/include/asm/
H A Dpgtable.h138 #define flush_tlb_fix_spurious_fault(vma, address, ptep) \ argument
182 #define __pte_clear(mm, addr, ptep) \ argument
183 __set_pte(ptep, __pte(0))
401 static inline void __set_pte_nosync(pte_t *ptep, pte_t pte) in __set_pte_nosync() argument
403 WRITE_ONCE(*ptep, pte); in __set_pte_nosync()
416 static inline void __set_pte(pte_t *ptep, pte_t pte) in __set_pte() argument
418 __set_pte_nosync(ptep, pte); in __set_pte()
422 static inline pte_t __ptep_get(pte_t *ptep) in __ptep_get() argument
424 return READ_ONCE(*ptep); in __ptep_get()
446 static inline void __check_safe_pte_update(struct mm_struct *mm, pte_t *ptep, in __check_safe_pte_update() argument
[all …]
H A Dhugetlb.h39 pte_t *ptep, pte_t pte, unsigned long sz);
42 unsigned long addr, pte_t *ptep,
46 pte_t *ptep, unsigned long sz);
49 unsigned long addr, pte_t *ptep);
52 unsigned long addr, pte_t *ptep);
55 pte_t *ptep, unsigned long sz);
57 extern pte_t huge_ptep_get(struct mm_struct *mm, unsigned long addr, pte_t *ptep);
63 unsigned long addr, pte_t *ptep);
67 unsigned long addr, pte_t *ptep,
/linux/include/linux/
H A Dpgtable.h255 static inline unsigned int pte_batch_hint(pte_t *ptep, pte_t pte) in pte_batch_hint() argument
290 pte_t *ptep, pte_t pte, unsigned int nr) in set_ptes() argument
292 page_table_check_ptes_set(mm, ptep, pte, nr); in set_ptes()
295 set_pte(ptep, pte); in set_ptes()
298 ptep++; in set_ptes()
303 #define set_pte_at(mm, addr, ptep, pte) set_ptes(mm, addr, ptep, pte, 1) argument
307 unsigned long address, pte_t *ptep,
338 static inline pte_t ptep_get(pte_t *ptep) in ptep_get() argument
340 return READ_ONCE(*ptep); in ptep_get()
375 pte_t *ptep) in ptep_test_and_clear_young() argument
[all …]
/linux/include/asm-generic/
H A Dhugetlb.h63 pte_t *ptep, unsigned long sz) in huge_pte_clear() argument
65 pte_clear(mm, addr, ptep); in huge_pte_clear()
71 pte_t *ptep, pte_t pte, unsigned long sz) in set_huge_pte_at() argument
73 set_pte_at(mm, addr, ptep, pte); in set_huge_pte_at()
79 unsigned long addr, pte_t *ptep, unsigned long sz) in huge_ptep_get_and_clear() argument
81 return ptep_get_and_clear(mm, addr, ptep); in huge_ptep_get_and_clear()
87 unsigned long addr, pte_t *ptep) in huge_ptep_clear_flush() argument
89 return ptep_clear_flush(vma, addr, ptep); in huge_ptep_clear_flush()
102 unsigned long addr, pte_t *ptep) in huge_ptep_set_wrprotect() argument
104 ptep_set_wrprotect(mm, addr, ptep); in huge_ptep_set_wrprotect()
[all …]
/linux/arch/parisc/mm/
H A Dhugetlbpage.c102 pte_t *ptep, pte_t entry) in __set_huge_pte_at() argument
111 set_pte(ptep, entry); in __set_huge_pte_at()
112 ptep++; in __set_huge_pte_at()
122 pte_t *ptep, pte_t entry, unsigned long sz) in set_huge_pte_at() argument
124 __set_huge_pte_at(mm, addr, ptep, entry); in set_huge_pte_at()
129 pte_t *ptep, unsigned long sz) in huge_ptep_get_and_clear() argument
133 entry = *ptep; in huge_ptep_get_and_clear()
134 __set_huge_pte_at(mm, addr, ptep, __pte(0)); in huge_ptep_get_and_clear()
141 unsigned long addr, pte_t *ptep) in huge_ptep_set_wrprotect() argument
145 old_pte = *ptep; in huge_ptep_set_wrprotect()
[all …]
/linux/drivers/iommu/
H A Dio-pgtable-arm.c154 #define iopte_set_writeable_clean(ptep) \ argument
155 set_bit(ARM_LPAE_PTE_AP_RDONLY_BIT, (unsigned long *)(ptep))
316 static void __arm_lpae_sync_pte(arm_lpae_iopte *ptep, int num_entries, in __arm_lpae_sync_pte() argument
319 dma_sync_single_for_device(cfg->iommu_dev, __arm_lpae_dma_addr(ptep), in __arm_lpae_sync_pte()
320 sizeof(*ptep) * num_entries, DMA_TO_DEVICE); in __arm_lpae_sync_pte()
323 static void __arm_lpae_clear_pte(arm_lpae_iopte *ptep, struct io_pgtable_cfg *cfg, int num_entries) in __arm_lpae_clear_pte() argument
326 ptep[i] = 0; in __arm_lpae_clear_pte()
329 __arm_lpae_sync_pte(ptep, num_entries, cfg); in __arm_lpae_clear_pte()
335 int lvl, arm_lpae_iopte *ptep);
339 int lvl, int num_entries, arm_lpae_iopte *ptep) in __arm_lpae_init_pte() argument
[all …]
/linux/arch/powerpc/mm/
H A Dpgtable.c192 void set_ptes(struct mm_struct *mm, unsigned long addr, pte_t *ptep, in set_ptes() argument
215 VM_WARN_ON(pte_hw_valid(*ptep) && !pte_protnone(*ptep)); in set_ptes()
218 __set_pte_at(mm, addr, ptep, pte, 0); in set_ptes()
221 ptep++; in set_ptes()
230 pte_t *ptep = pte_offset_kernel(pmdp, va); in unmap_kernel_page() local
232 pte_clear(&init_mm, va, ptep); in unmap_kernel_page()
244 pte_t *ptep, pte_t entry, int dirty) in ptep_set_access_flags() argument
248 changed = !pte_same(*(ptep), entry); in ptep_set_access_flags()
251 __ptep_set_access_flags(vma, ptep, entry, in ptep_set_access_flags()
259 unsigned long addr, pte_t *ptep, in huge_ptep_set_access_flags() argument
[all …]
H A Dpageattr.c19 static pte_basic_t pte_update_delta(pte_t *ptep, unsigned long addr, in pte_update_delta() argument
22 return pte_update(&init_mm, addr, ptep, old & ~new, new & ~old, 0); in pte_update_delta()
31 static int change_page_attr(pte_t *ptep, unsigned long addr, void *data) in change_page_attr() argument
40 pte_update_delta(ptep, addr, _PAGE_KERNEL_RW & ~_PAGE_DIRTY, _PAGE_KERNEL_RO); in change_page_attr()
44 pte_update_delta(ptep, addr, _PAGE_KERNEL_RW & ~_PAGE_DIRTY, _PAGE_KERNEL_ROX); in change_page_attr()
47 pte_update_delta(ptep, addr, _PAGE_KERNEL_RO, _PAGE_KERNEL_RW); in change_page_attr()
50 pte_update_delta(ptep, addr, _PAGE_KERNEL_ROX, _PAGE_KERNEL_RO); in change_page_attr()
53 pte_update_delta(ptep, addr, _PAGE_KERNEL_RO, _PAGE_KERNEL_ROX); in change_page_attr()
56 pte_update(&init_mm, addr, ptep, _PAGE_PRESENT, 0, 0); in change_page_attr()
59 pte_update(&init_mm, addr, ptep, 0, _PAGE_PRESENT, 0); in change_page_attr()
/linux/arch/powerpc/include/asm/nohash/32/
H A Dhugetlb-8xx.h19 void set_huge_pte_at(struct mm_struct *mm, unsigned long addr, pte_t *ptep,
23 static inline pte_t huge_ptep_get(struct mm_struct *mm, unsigned long addr, pte_t *ptep) in huge_ptep_get() argument
25 if (ptep_is_8m_pmdp(mm, addr, ptep)) in huge_ptep_get()
26 ptep = pte_offset_kernel((pmd_t *)ptep, ALIGN_DOWN(addr, SZ_8M)); in huge_ptep_get()
27 return ptep_get(ptep); in huge_ptep_get()
32 pte_t *ptep, unsigned long sz) in huge_pte_clear() argument
34 pte_update(mm, addr, ptep, ~0UL, 0, 1); in huge_pte_clear()
39 unsigned long addr, pte_t *ptep) in huge_ptep_set_wrprotect() argument
44 pte_update(mm, addr, ptep, clr, set, 1); in huge_ptep_set_wrprotect()
H A Dpte-8xx.h122 static inline pte_basic_t pte_update(struct mm_struct *mm, unsigned long addr, pte_t *ptep,
125 static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr, pte_t *ptep) in ptep_set_wrprotect() argument
127 pte_update(mm, addr, ptep, 0, _PAGE_RO, 0); in ptep_set_wrprotect()
131 static inline void __ptep_set_access_flags(struct vm_area_struct *vma, pte_t *ptep, in __ptep_set_access_flags() argument
138 pte_update(vma->vm_mm, address, ptep, clr, set, huge); in __ptep_set_access_flags()
170 static inline bool ptep_is_8m_pmdp(struct mm_struct *mm, unsigned long addr, pte_t *ptep) in ptep_is_8m_pmdp() argument
172 return (pmd_t *)ptep == pmd_off(mm, ALIGN_DOWN(addr, SZ_8M)); in ptep_is_8m_pmdp()
210 static inline pte_basic_t pte_update(struct mm_struct *mm, unsigned long addr, pte_t *ptep, in pte_update() argument
215 if (huge && ptep_is_8m_pmdp(mm, addr, ptep)) { in pte_update()
216 pmd_t *pmdp = (pmd_t *)ptep; in pte_update()
[all …]
/linux/tools/testing/selftests/kvm/lib/arm64/
H A Dprocessor.c134 uint64_t *ptep; in _virt_pg_map() local
150 ptep = addr_gpa2hva(vm, vm->pgd) + pgd_index(vm, vaddr) * 8; in _virt_pg_map()
151 if (!*ptep) in _virt_pg_map()
152 *ptep = addr_pte(vm, vm_alloc_page_table(vm), in _virt_pg_map()
157 ptep = addr_gpa2hva(vm, pte_addr(vm, *ptep)) + pud_index(vm, vaddr) * 8; in _virt_pg_map()
158 if (!*ptep) in _virt_pg_map()
159 *ptep = addr_pte(vm, vm_alloc_page_table(vm), in _virt_pg_map()
163 ptep = addr_gpa2hva(vm, pte_addr(vm, *ptep)) + pmd_index(vm, vaddr) * 8; in _virt_pg_map()
164 if (!*ptep) in _virt_pg_map()
165 *ptep = addr_pte(vm, vm_alloc_page_table(vm), in _virt_pg_map()
[all …]
/linux/arch/powerpc/include/asm/book3s/64/
H A Dhash.h162 pte_t *ptep, unsigned long pte, int huge);
165 static inline unsigned long hash__pte_update_one(pte_t *ptep, unsigned long clr, in hash__pte_update_one() argument
178 : "=&r" (old_be), "=&r" (tmp_be), "=m" (*ptep) in hash__pte_update_one()
179 : "r" (ptep), "r" (cpu_to_be64(clr)), "m" (*ptep), in hash__pte_update_one()
188 pte_t *ptep, unsigned long clr, in hash__pte_update() argument
194 old = hash__pte_update_one(ptep, clr, set); in hash__pte_update()
210 hash__pte_update_one(ptep + i, clr, set); in hash__pte_update()
217 hpte_need_flush(mm, addr, ptep, old, huge); in hash__pte_update()
225 static inline void hash__ptep_set_access_flags(pte_t *ptep, pte_t entry) in hash__ptep_set_access_flags() argument
241 :"=&r" (old), "=&r" (tmp), "=m" (*ptep) in hash__ptep_set_access_flags()
[all …]
H A Dradix.h146 extern void radix__ptep_set_access_flags(struct vm_area_struct *vma, pte_t *ptep,
151 unsigned long addr, pte_t *ptep,
154 static inline unsigned long __radix_pte_update(pte_t *ptep, unsigned long clr, in __radix_pte_update() argument
165 : "=&r" (old_be), "=&r" (tmp_be), "=m" (*ptep) in __radix_pte_update()
166 : "r" (ptep), "r" (cpu_to_be64(set)), "r" (cpu_to_be64(clr)) in __radix_pte_update()
174 pte_t *ptep, unsigned long clr, in radix__pte_update() argument
180 old_pte = __radix_pte_update(ptep, clr, set); in radix__pte_update()
189 pte_t *ptep, int full) in radix__ptep_get_and_clear_full() argument
194 old_pte = pte_val(*ptep); in radix__ptep_get_and_clear_full()
195 *ptep = __pte(0); in radix__ptep_get_and_clear_full()
[all …]
/linux/tools/testing/selftests/kvm/lib/loongarch/
H A Dprocessor.c39 uint64_t *ptep; in virt_set_pgtable() local
42 ptep = addr_gpa2hva(vm, table); in virt_set_pgtable()
45 WRITE_ONCE(*(ptep + i), child); in virt_set_pgtable()
69 static int virt_pte_none(uint64_t *ptep, int level) in virt_pte_none() argument
71 return *ptep == invalid_pgtable[level]; in virt_pte_none()
77 uint64_t *ptep; in virt_populate_pte() local
86 ptep = addr_gpa2hva(vm, child) + virt_pte_index(vm, gva, level) * 8; in virt_populate_pte()
87 if (virt_pte_none(ptep, level)) { in virt_populate_pte()
91 WRITE_ONCE(*ptep, child); in virt_populate_pte()
96 child = pte_addr(vm, *ptep); in virt_populate_pte()
[all …]
/linux/arch/xtensa/include/asm/
H A Dpgtable.h242 #define pte_clear(mm,addr,ptep) \ argument
243 do { update_pte(ptep, __pte(_PAGE_CA_INVALID | _PAGE_USER)); } while (0)
287 static inline void update_pte(pte_t *ptep, pte_t pteval) in update_pte() argument
289 *ptep = pteval; in update_pte()
291 __asm__ __volatile__ ("dhwb %0, 0" :: "a" (ptep)); in update_pte()
298 static inline void set_pte(pte_t *ptep, pte_t pte) in set_pte() argument
300 update_pte(ptep, pte); in set_pte()
313 pte_t *ptep) in ptep_test_and_clear_young() argument
315 pte_t pte = *ptep; in ptep_test_and_clear_young()
318 update_pte(ptep, pte_mkold(pte)); in ptep_test_and_clear_young()
[all …]
/linux/arch/mips/include/asm/
H A Dpgtable.h119 static inline void set_pte(pte_t *ptep, pte_t pte) argument
121 ptep->pte_high = pte.pte_high;
123 ptep->pte_low = pte.pte_low;
130 pte_t *buddy = ptep_buddy(ptep);
143 static inline void pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) argument
150 if (ptep_buddy(ptep)->pte_high & _PAGE_GLOBAL)
153 if (ptep_buddy(ptep)->pte_low & _PAGE_GLOBAL)
157 set_pte(ptep, null);
171 static inline void set_pte(pte_t *ptep, pte_t pteval) argument
173 *ptep = pteval;
[all …]
/linux/arch/powerpc/include/asm/nohash/
H A Dpgtable.h103 unsigned long addr, pte_t *ptep) in ptep_test_and_clear_young() argument
107 old = pte_update(vma->vm_mm, addr, ptep, _PAGE_ACCESSED, 0, 0); in ptep_test_and_clear_young()
115 pte_t *ptep) in ptep_set_wrprotect() argument
117 pte_update(mm, addr, ptep, _PAGE_WRITE, 0, 0); in ptep_set_wrprotect()
123 pte_t *ptep) in ptep_get_and_clear() argument
125 return __pte(pte_update(mm, addr, ptep, ~0UL, 0, 0)); in ptep_get_and_clear()
129 static inline void pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) in pte_clear() argument
131 pte_update(mm, addr, ptep, ~0UL, 0, 0); in pte_clear()
137 pte_t *ptep, pte_t entry, in __ptep_set_access_flags() argument
145 pte_update(vma->vm_mm, address, ptep, 0, set, huge); in __ptep_set_access_flags()
[all …]
/linux/arch/x86/xen/
H A Dp2m.c210 pte_t *ptep; in xen_build_mfn_list_list() local
238 ptep = lookup_address((unsigned long)(xen_p2m_addr + pfn), in xen_build_mfn_list_list()
240 BUG_ON(!ptep || level != PG_LEVEL_4K); in xen_build_mfn_list_list()
241 mfn = pte_mfn(*ptep); in xen_build_mfn_list_list()
242 ptep = (pte_t *)((unsigned long)ptep & ~(PAGE_SIZE - 1)); in xen_build_mfn_list_list()
248 if (ptep == p2m_missing_pte || ptep == p2m_identity_pte) { in xen_build_mfn_list_list()
326 pte_t *ptep; in xen_rebuild_p2m_list() local
374 ptep = populate_extra_pte((unsigned long)(p2m + pfn)); in xen_rebuild_p2m_list()
375 set_pte(ptep, in xen_rebuild_p2m_list()
384 ptep = populate_extra_pte((unsigned long)(p2m + pfn)); in xen_rebuild_p2m_list()
[all …]
/linux/arch/powerpc/include/asm/book3s/32/
H A Dpgtable.h216 #define pte_clear(mm, addr, ptep) \ argument
217 do { pte_update(mm, addr, ptep, ~_PAGE_HASHPTE, 0, 0); } while (0)
240 static inline void flush_hash_entry(struct mm_struct *mm, pte_t *ptep, unsigned long addr) in flush_hash_entry() argument
243 unsigned long ptephys = __pa(ptep) & PAGE_MASK; in flush_hash_entry()
302 unsigned long addr, pte_t *ptep) in __ptep_test_and_clear_young() argument
305 old = pte_update(mm, addr, ptep, _PAGE_ACCESSED, 0, 0); in __ptep_test_and_clear_young()
307 flush_hash_entry(mm, ptep, addr); in __ptep_test_and_clear_young()
316 pte_t *ptep) in ptep_get_and_clear() argument
318 return __pte(pte_update(mm, addr, ptep, ~_PAGE_HASHPTE, 0, 0)); in ptep_get_and_clear()
323 pte_t *ptep) in ptep_set_wrprotect() argument
[all …]
/linux/arch/powerpc/mm/book3s64/
H A Dhash_64k.c39 pte_t *ptep, unsigned long trap, unsigned long flags, in __hash_page_4K() argument
54 pte_t pte = READ_ONCE(*ptep); in __hash_page_4K()
71 } while (!pte_xchg(ptep, __pte(old_pte), __pte(new_pte))); in __hash_page_4K()
91 rpte = __real_pte(__pte(old_pte), ptep, PTRS_PER_PTE); in __hash_page_4K()
131 *ptep = __pte(new_pte & ~H_PAGE_BUSY); in __hash_page_4K()
212 *ptep = __pte(old_pte); in __hash_page_4K()
218 new_pte |= pte_set_hidx(ptep, rpte, subpg_index, slot, PTRS_PER_PTE); in __hash_page_4K()
224 *ptep = __pte(new_pte & ~H_PAGE_BUSY); in __hash_page_4K()
229 unsigned long vsid, pte_t *ptep, unsigned long trap, in __hash_page_64K() argument
243 pte_t pte = READ_ONCE(*ptep); in __hash_page_64K()
[all …]
/linux/tools/testing/selftests/kvm/lib/riscv/
H A Dprocessor.c84 uint64_t *ptep, next_ppn; in virt_arch_pg_map() local
101 ptep = addr_gpa2hva(vm, vm->pgd) + pte_index(vm, vaddr, level) * 8; in virt_arch_pg_map()
102 if (!*ptep) { in virt_arch_pg_map()
104 *ptep = (next_ppn << PGTBL_PTE_ADDR_SHIFT) | in virt_arch_pg_map()
110 ptep = addr_gpa2hva(vm, pte_addr(vm, *ptep)) + in virt_arch_pg_map()
112 if (!*ptep && level > 0) { in virt_arch_pg_map()
115 *ptep = (next_ppn << PGTBL_PTE_ADDR_SHIFT) | in virt_arch_pg_map()
122 *ptep = (paddr << PGTBL_PTE_ADDR_SHIFT) | in virt_arch_pg_map()
128 uint64_t *ptep; in addr_arch_gva2gpa() local
134 ptep = addr_gpa2hva(vm, vm->pgd) + pte_index(vm, gva, level) * 8; in addr_arch_gva2gpa()
[all …]

12345678