Lines Matching refs:ptep

48 				   pte_t *ptep, int nodat)
61 __ptep_ipte(addr, ptep, opt, asce, IPTE_LOCAL);
63 __ptep_ipte(addr, ptep, 0, 0, IPTE_LOCAL);
68 pte_t *ptep, int nodat)
81 __ptep_ipte(addr, ptep, opt, asce, IPTE_GLOBAL);
83 __ptep_ipte(addr, ptep, 0, 0, IPTE_GLOBAL);
88 unsigned long addr, pte_t *ptep,
93 old = *ptep;
99 ptep_ipte_local(mm, addr, ptep, nodat);
101 ptep_ipte_global(mm, addr, ptep, nodat);
107 unsigned long addr, pte_t *ptep,
112 old = *ptep;
118 set_pte(ptep, set_pte_bit(*ptep, __pgprot(_PAGE_INVALID)));
121 ptep_ipte_global(mm, addr, ptep, nodat);
126 static inline pgste_t pgste_get_lock(pte_t *ptep)
139 : "=&d" (old), "=&d" (new), "=Q" (ptep[PTRS_PER_PTE])
140 : "Q" (ptep[PTRS_PER_PTE]) : "cc", "memory");
145 static inline void pgste_set_unlock(pte_t *ptep, pgste_t pgste)
151 : "=Q" (ptep[PTRS_PER_PTE])
152 : "d" (pgste_val(pgste)), "Q" (ptep[PTRS_PER_PTE])
157 static inline pgste_t pgste_get(pte_t *ptep)
161 pgste = *(unsigned long *)(ptep + PTRS_PER_PTE);
166 static inline void pgste_set(pte_t *ptep, pgste_t pgste)
169 *(pgste_t *)(ptep + PTRS_PER_PTE) = pgste;
194 static inline void pgste_set_key(pte_t *ptep, pgste_t pgste, pte_t entry,
203 VM_BUG_ON(!(pte_val(*ptep) & _PAGE_INVALID));
216 static inline pgste_t pgste_set_pte(pte_t *ptep, pgste_t pgste, pte_t entry)
235 set_pte(ptep, entry);
241 pte_t *ptep, pgste_t pgste)
249 ptep_notify(mm, addr, ptep, bits);
256 unsigned long addr, pte_t *ptep)
261 pgste = pgste_get_lock(ptep);
262 pgste = pgste_pte_notify(mm, addr, ptep, pgste);
268 unsigned long addr, pte_t *ptep,
273 pgste_set_key(ptep, pgste, new, mm);
280 pgste = pgste_set_pte(ptep, pgste, new);
281 pgste_set_unlock(ptep, pgste);
283 set_pte(ptep, new);
289 pte_t *ptep, pte_t new)
296 pgste = ptep_xchg_start(mm, addr, ptep);
298 old = ptep_flush_direct(mm, addr, ptep, nodat);
299 old = ptep_xchg_commit(mm, addr, ptep, pgste, old, new);
309 void ptep_reset_dat_prot(struct mm_struct *mm, unsigned long addr, pte_t *ptep,
315 __ptep_rdp(addr, ptep, 0, 0, 1);
317 __ptep_rdp(addr, ptep, 0, 0, 0);
324 set_pte(ptep, new);
331 pte_t *ptep, pte_t new)
338 pgste = ptep_xchg_start(mm, addr, ptep);
340 old = ptep_flush_lazy(mm, addr, ptep, nodat);
341 old = ptep_xchg_commit(mm, addr, ptep, pgste, old, new);
348 pte_t *ptep)
356 pgste = ptep_xchg_start(mm, addr, ptep);
358 old = ptep_flush_lazy(mm, addr, ptep, nodat);
361 pgste_set(ptep, pgste);
367 pte_t *ptep, pte_t old_pte, pte_t pte)
375 pgste = pgste_get(ptep);
376 pgste_set_key(ptep, pgste, pte, mm);
377 pgste = pgste_set_pte(ptep, pgste, pte);
378 pgste_set_unlock(ptep, pgste);
380 set_pte(ptep, pte);
593 pte_t *ptep;
606 ptep = (pte_t *) pgtable;
607 set_pte(ptep, __pte(_PAGE_INVALID));
608 ptep++;
609 set_pte(ptep, __pte(_PAGE_INVALID));
616 pte_t *ptep, pte_t entry)
622 pgste = pgste_get_lock(ptep);
624 pgste_set_key(ptep, pgste, entry, mm);
625 pgste = pgste_set_pte(ptep, pgste, entry);
626 pgste_set_unlock(ptep, pgste);
630 void ptep_set_notify(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
635 pgste = pgste_get_lock(ptep);
637 pgste_set_unlock(ptep, pgste);
645 * @ptep: pointer to the page table entry
653 pte_t *ptep, int prot, unsigned long bit)
659 pgste = pgste_get_lock(ptep);
660 entry = *ptep;
666 pgste_set_unlock(ptep, pgste);
672 ptep_flush_direct(mm, addr, ptep, nodat);
677 ptep_flush_direct(mm, addr, ptep, nodat);
682 pgste = pgste_set_pte(ptep, pgste, entry);
683 pgste_set_unlock(ptep, pgste);
714 void ptep_unshadow_pte(struct mm_struct *mm, unsigned long saddr, pte_t *ptep)
719 pgste = pgste_get_lock(ptep);
722 ptep_flush_direct(mm, saddr, ptep, nodat);
724 pgste = pgste_set_pte(ptep, pgste, __pte(_PAGE_INVALID));
725 pgste_set_unlock(ptep, pgste);
741 pte_t *ptep, int reset)
749 pgste = pgste_get_lock(ptep);
751 pte = *ptep;
756 pte_clear(mm, addr, ptep);
760 pgste_set_unlock(ptep, pgste);
764 void ptep_zap_key(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
771 pgste = pgste_get_lock(ptep);
774 ptev = pte_val(*ptep);
777 pgste_set_unlock(ptep, pgste);
785 pte_t *ptep)
792 pgste = pgste_get_lock(ptep);
795 pte = *ptep;
797 pgste = pgste_pte_notify(mm, addr, ptep, pgste);
799 ptep_ipte_global(mm, addr, ptep, nodat);
804 set_pte(ptep, pte);
806 pgste_set_unlock(ptep, pgste);
818 pte_t *ptep;
852 ptep = pte_offset_map_lock(mm, pmdp, addr, &ptl);
853 if (!ptep)
855 new = old = pgste_get_lock(ptep);
861 if (!(pte_val(*ptep) & _PAGE_INVALID)) {
864 paddr = pte_val(*ptep) & PAGE_MASK;
878 pgste_set_unlock(ptep, new);
879 pte_unmap_unlock(ptep, ptl);
928 pte_t *ptep;
959 ptep = pte_offset_map_lock(mm, pmdp, addr, &ptl);
960 if (!ptep)
962 new = old = pgste_get_lock(ptep);
966 if (!(pte_val(*ptep) & _PAGE_INVALID)) {
967 paddr = pte_val(*ptep) & PAGE_MASK;
978 pgste_set_unlock(ptep, new);
979 pte_unmap_unlock(ptep, ptl);
991 pte_t *ptep;
1023 ptep = pte_offset_map_lock(mm, pmdp, addr, &ptl);
1024 if (!ptep)
1026 pgste = pgste_get_lock(ptep);
1028 paddr = pte_val(*ptep) & PAGE_MASK;
1029 if (!(pte_val(*ptep) & _PAGE_INVALID))
1033 pgste_set_unlock(ptep, pgste);
1034 pte_unmap_unlock(ptep, ptl);
1058 pte_t *ptep;
1068 ptep = get_locked_pte(mm, hva, &ptl);
1069 if (unlikely(!ptep))
1071 pgste = pgste_get_lock(ptep);
1074 *oldpte = pte_val(*ptep);
1088 if (pte_val(*ptep) & _PAGE_INVALID)
1094 if (pte_val(*ptep) & _PAGE_INVALID)
1099 if (!(pte_val(*ptep) & _PAGE_INVALID)) {
1123 if (!(pte_val(*ptep) & _PAGE_INVALID)) {
1141 pgste_set_unlock(ptep, pgste);
1142 pte_unmap_unlock(ptep, ptl);
1163 pte_t *ptep;
1168 ptep = get_locked_pte(mm, hva, &ptl);
1169 if (unlikely(!ptep))
1171 new = pgste_get_lock(ptep);
1176 pgste_set_unlock(ptep, new);
1177 pte_unmap_unlock(ptep, ptl);
1194 pte_t *ptep;
1199 ptep = get_locked_pte(mm, hva, &ptl);
1200 if (unlikely(!ptep))
1202 *pgstep = pgste_val(pgste_get(ptep));
1203 pte_unmap_unlock(ptep, ptl);