| /linux/arch/s390/kvm/ |
| H A D | dat.c | 162 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 D | gmap.c | 285 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 D | gmap.h | 168 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 D | dat.h | 121 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 D | gaccess.c | 1425 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 D | priv.c | 1185 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 D | Makefile.kvm | 298 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)
|