Home
last modified time | relevance | path

Searched refs:pgste (Results 1 – 7 of 7) sorted by relevance

/linux/arch/s390/kvm/
H A Ddat.c162 static void dat_set_storage_key_from_pgste(union pte pte, union pgste pgste) in dat_set_storage_key_from_pgste() argument
164 union skey nkey = { .acc = pgste.acc, .fp = pgste.fp }; in dat_set_storage_key_from_pgste()
174 static union pgste dat_save_storage_key_into_pgste(union pte pte, union pgste pgste) in dat_save_storage_key_into_pgste() argument
180 pgste.acc = skey.acc; in dat_save_storage_key_into_pgste()
181 pgste.fp = skey.fp; in dat_save_storage_key_into_pgste()
182 pgste.gr |= skey.r; in dat_save_storage_key_into_pgste()
183 pgste.gc |= skey.c; in dat_save_storage_key_into_pgste()
185 return pgste; in dat_save_storage_key_into_pgste()
188 union pgste __dat_ptep_xchg(union pte *ptep, union pgste pgste, union pte new, gfn_t gfn, in __dat_ptep_xchg() argument
196 return pgste; in __dat_ptep_xchg()
[all …]
H A Dgmap.c285 union pgste pgste; in gmap_clear_young_pte() local
293 pgste = pgste_get_lock(ptep); in gmap_clear_young_pte()
294 if (!pgste.prefix_notif || gmap_mkold_prefix(p->gmap, gfn, end)) { in gmap_clear_young_pte()
303 pgste.prefix_notif = 0; in gmap_clear_young_pte()
304 pgste = __dat_ptep_xchg(ptep, pgste, new, gfn, walk->asce, uses_skeys(p->gmap)); in gmap_clear_young_pte()
307 pgste_set_unlock(ptep, pgste); in gmap_clear_young_pte()
376 union pgste pgste; in _gmap_unmap_pte() local
378 pgste = pgste_get_lock(ptep); in _gmap_unmap_pte()
379 if (ptep->s.pr && pgste.usage == PGSTE_GPS_USAGE_UNUSED) { in _gmap_unmap_pte()
385 pgste = gmap_ptep_xchg(priv->gmap, ptep, _PTE_EMPTY, pgste, gfn); in _gmap_unmap_pte()
[all …]
H A Dgmap.h168 static inline union pgste _gmap_ptep_xchg(struct gmap *gmap, union pte *ptep, union pte newpte, in _gmap_ptep_xchg()
169 union pgste pgste, gfn_t gfn, bool needs_lock) in _gmap_ptep_xchg() argument
177 if (pgste.prefix_notif && (newpte.h.p || newpte.h.i)) { in _gmap_ptep_xchg()
178 pgste.prefix_notif = 0; in _gmap_ptep_xchg()
181 if (pgste.vsie_notif && (ptep->h.p != newpte.h.p || newpte.h.i)) { in _gmap_ptep_xchg()
182 pgste.vsie_notif = 0; in _gmap_ptep_xchg()
190 return __dat_ptep_xchg(ptep, pgste, newpte, gfn, gmap->asce, uses_skeys(gmap)); in _gmap_ptep_xchg()
193 static inline union pgste gmap_ptep_xchg(struct gmap *gmap, union pte *ptep, union pte newpte, in gmap_ptep_xchg()
194 union pgste pgste, gfn_t gfn) in gmap_ptep_xchg() argument
196 return _gmap_ptep_xchg(gmap, ptep, newpte, pgste, gfn, true); in gmap_ptep_xchg()
H A Ddat.h121 union pgste { union
303 static_assert(sizeof(union pgste) == sizeof(unsigned long));
340 union pgste pgstes[_PAGE_ENTRIES];
514 union pgste __must_check __dat_ptep_xchg(union pte *ptep, union pgste pgste, union pte new,
753 static inline union pgste *pgste_of(union pte *pte) in pgste_of()
755 return (union pgste *)(pte + _PAGE_ENTRIES); in pgste_of()
844 static inline bool pgste_get_trylock(union pte *ptep, union pgste *res) in pgste_get_trylock()
846 union pgste *pgstep = pgste_of(ptep); in pgste_get_trylock()
847 union pgste old_pgste; in pgste_get_trylock()
859 static inline union pgste pgste_get_lock(union pte *ptep) in pgste_get_lock()
[all …]
H A Dgaccess.c1425 union pgste pgste; in _do_shadow_pte() local
1437 if (!pgste_get_trylock(ptep_h, &pgste)) in _do_shadow_pte()
1446 pgste = _gmap_ptep_xchg(sg->parent, ptep_h, newpte, pgste, f->gfn, false); in _do_shadow_pte()
1447 pgste.vsie_notif = 1; in _do_shadow_pte()
1449 pgste_set_unlock(ptep_h, pgste); in _do_shadow_pte()
1456 if (!pgste_get_trylock(ptep, &pgste)) in _do_shadow_pte()
1458 pgste = __dat_ptep_xchg(ptep, pgste, newpte, gpa_to_gfn(raddr), sg->asce, uses_skeys(sg)); in _do_shadow_pte()
1459 pgste_set_unlock(ptep, pgste); in _do_shadow_pte()
H A Dpriv.c1185 union pgste pgste; in _essa_clear_cbrl() local
1197 pgste = pgste_get_lock(ptep); in _essa_clear_cbrl()
1198 if (pgste.usage == PGSTE_GPS_USAGE_UNUSED || pgste.zero) in _essa_clear_cbrl()
1200 pgste_set_unlock(ptep, pgste); in _essa_clear_cbrl()
/linux/tools/testing/selftests/kvm/
H A DMakefile.kvm298 pgste-option = $(call try-run, echo 'int main(void) { return 0; }' | \
299 $(CC) -Werror -Wl$(comma)--s390-pgste -x c - -o "$$TMP",-Wl$(comma)--s390-pgste)
302 LDFLAGS += -pthread $(no-pie-option) $(pgste-option)