Lines Matching refs:pgste
661 static inline void pgste_set_unlock(pte_t *ptep, pgste_t pgste) in pgste_set_unlock() argument
668 : "d" (pgste_val(pgste)), "Q" (ptep[PTRS_PER_PTE]) in pgste_set_unlock()
676 unsigned long pgste = 0; in pgste_get() local
678 pgste = *(unsigned long *)(ptep + PTRS_PER_PTE); in pgste_get()
680 return __pgste(pgste); in pgste_get()
683 static inline void pgste_set(pte_t *ptep, pgste_t pgste) in pgste_set() argument
686 *(pgste_t *)(ptep + PTRS_PER_PTE) = pgste; in pgste_set()
690 static inline pgste_t pgste_update_all(pte_t *ptep, pgste_t pgste, in pgste_update_all() argument
697 return pgste; in pgste_update_all()
702 pgste_val(pgste) |= bits << 48; /* GR bit & GC bit */ in pgste_update_all()
704 pgste_val(pgste) &= ~(PGSTE_ACC_BITS | PGSTE_FP_BIT); in pgste_update_all()
705 pgste_val(pgste) |= (skey & (_PAGE_ACC_BITS | _PAGE_FP_BIT)) << 56; in pgste_update_all()
707 return pgste; in pgste_update_all()
711 static inline void pgste_set_key(pte_t *ptep, pgste_t pgste, pte_t entry, in pgste_set_key() argument
727 nkey = (pgste_val(pgste) & (PGSTE_ACC_BITS | PGSTE_FP_BIT)) >> 56; in pgste_set_key()
728 nkey |= (pgste_val(pgste) & (PGSTE_GR_BIT | PGSTE_GC_BIT)) >> 48; in pgste_set_key()
733 static inline pgste_t pgste_set_pte(pte_t *ptep, pgste_t pgste, pte_t entry) in pgste_set_pte() argument
748 pgste_val(pgste) |= PGSTE_UC_BIT; in pgste_set_pte()
751 return pgste; in pgste_set_pte()
811 pte_t *ptep, pgste_t pgste) in pgste_ipte_notify()
814 if (pgste_val(pgste) & PGSTE_IN_BIT) { in pgste_ipte_notify()
815 pgste_val(pgste) &= ~PGSTE_IN_BIT; in pgste_ipte_notify()
819 return pgste; in pgste_ipte_notify()
830 pgste_t pgste; in set_pte_at() local
833 pgste = pgste_get_lock(ptep); in set_pte_at()
834 pgste_val(pgste) &= ~_PGSTE_GPS_ZERO; in set_pte_at()
835 pgste_set_key(ptep, pgste, entry, mm); in set_pte_at()
836 pgste = pgste_set_pte(ptep, pgste, entry); in set_pte_at()
837 pgste_set_unlock(ptep, pgste); in set_pte_at()
1049 pgste_t pgste; in ptep_test_and_clear_user_dirty() local
1055 pgste = pgste_get_lock(ptep); in ptep_test_and_clear_user_dirty()
1056 dirty = !!(pgste_val(pgste) & PGSTE_UC_BIT); in ptep_test_and_clear_user_dirty()
1057 pgste_val(pgste) &= ~PGSTE_UC_BIT; in ptep_test_and_clear_user_dirty()
1060 pgste = pgste_ipte_notify(mm, addr, ptep, pgste); in ptep_test_and_clear_user_dirty()
1068 pgste_set_unlock(ptep, pgste); in ptep_test_and_clear_user_dirty()
1076 pgste_t pgste; in ptep_test_and_clear_young() local
1081 pgste = pgste_get_lock(ptep); in ptep_test_and_clear_young()
1082 pgste = pgste_ipte_notify(vma->vm_mm, addr, ptep, pgste); in ptep_test_and_clear_young()
1091 pgste = pgste_update_all(&oldpte, pgste, vma->vm_mm); in ptep_test_and_clear_young()
1092 pgste = pgste_set_pte(ptep, pgste, pte); in ptep_test_and_clear_young()
1093 pgste_set_unlock(ptep, pgste); in ptep_test_and_clear_young()
1124 pgste_t pgste; in ptep_get_and_clear() local
1128 pgste = pgste_get_lock(ptep); in ptep_get_and_clear()
1129 pgste = pgste_ipte_notify(mm, address, ptep, pgste); in ptep_get_and_clear()
1137 pgste = pgste_update_all(&pte, pgste, mm); in ptep_get_and_clear()
1138 pgste_set_unlock(ptep, pgste); in ptep_get_and_clear()
1148 pgste_t pgste; in ptep_modify_prot_start() local
1152 pgste = pgste_get_lock(ptep); in ptep_modify_prot_start()
1153 pgste_ipte_notify(mm, address, ptep, pgste); in ptep_modify_prot_start()
1160 pgste = pgste_update_all(&pte, pgste, mm); in ptep_modify_prot_start()
1161 pgste_set(ptep, pgste); in ptep_modify_prot_start()
1170 pgste_t pgste; in ptep_modify_prot_commit() local
1173 pgste = pgste_get(ptep); in ptep_modify_prot_commit()
1174 pgste_set_key(ptep, pgste, pte, mm); in ptep_modify_prot_commit()
1175 pgste = pgste_set_pte(ptep, pgste, pte); in ptep_modify_prot_commit()
1176 pgste_set_unlock(ptep, pgste); in ptep_modify_prot_commit()
1185 pgste_t pgste; in ptep_clear_flush() local
1189 pgste = pgste_get_lock(ptep); in ptep_clear_flush()
1190 pgste = pgste_ipte_notify(vma->vm_mm, address, ptep, pgste); in ptep_clear_flush()
1198 if ((pgste_val(pgste) & _PGSTE_GPS_USAGE_MASK) == in ptep_clear_flush()
1201 pgste = pgste_update_all(&pte, pgste, vma->vm_mm); in ptep_clear_flush()
1202 pgste_set_unlock(ptep, pgste); in ptep_clear_flush()
1219 pgste_t pgste; in ptep_get_and_clear_full() local
1223 pgste = pgste_get_lock(ptep); in ptep_get_and_clear_full()
1224 pgste = pgste_ipte_notify(mm, address, ptep, pgste); in ptep_get_and_clear_full()
1233 pgste = pgste_update_all(&pte, pgste, mm); in ptep_get_and_clear_full()
1234 pgste_set_unlock(ptep, pgste); in ptep_get_and_clear_full()
1243 pgste_t pgste; in ptep_set_wrprotect() local
1248 pgste = pgste_get_lock(ptep); in ptep_set_wrprotect()
1249 pgste = pgste_ipte_notify(mm, address, ptep, pgste); in ptep_set_wrprotect()
1256 pgste = pgste_set_pte(ptep, pgste, pte); in ptep_set_wrprotect()
1257 pgste_set_unlock(ptep, pgste); in ptep_set_wrprotect()
1269 pgste_t pgste; in ptep_set_access_flags() local
1276 pgste = pgste_get_lock(ptep); in ptep_set_access_flags()
1277 pgste = pgste_ipte_notify(vma->vm_mm, address, ptep, pgste); in ptep_set_access_flags()
1284 pgste_set_key(ptep, pgste, entry, vma->vm_mm); in ptep_set_access_flags()
1285 pgste = pgste_set_pte(ptep, pgste, entry); in ptep_set_access_flags()
1286 pgste_set_unlock(ptep, pgste); in ptep_set_access_flags()