Searched refs:crstep (Results 1 – 3 of 3) sorted by relevance
| /linux/arch/s390/kvm/gmap/ |
| H A D | dat.c | 152 bool __must_check dat_crstep_xchg_atomic(union crste *crstep, union crste old, union crste new, in dat_crstep_xchg_atomic() argument 156 return arch_try_cmpxchg((long *)crstep, &old.val, new.val); in dat_crstep_xchg_atomic() 158 return crdte_crste(crstep, old, new, gfn, asce); in dat_crstep_xchg_atomic() 159 return cspg_crste(crstep, old, new); in dat_crstep_xchg_atomic() 302 static int dat_split_crste(struct kvm_s390_mmu_cache *mc, union crste *crstep, in dat_split_crste() argument 309 old = READ_ONCE(*crstep); in dat_split_crste() 311 return dat_split_ste(mc, &crstep->pmd, gfn, asce, uses_skeys); in dat_split_crste() 336 if (dat_crstep_xchg_atomic(crstep, old, new, gfn, asce)) in dat_split_crste() 338 old = READ_ONCE(*crstep); in dat_split_crste() 619 union crste *crstep; in dat_get_storage_key() local [all …]
|
| H A D | gmap.c | 318 static long gmap_clear_young_crste(union crste *crstep, gfn_t gfn, gfn_t end, struct dat_walk *walk) in gmap_clear_young_crste() argument 324 crste = READ_ONCE(*crstep); in gmap_clear_young_crste() 341 } while (!dat_crstep_xchg_atomic(crstep, crste, new, gfn, walk->asce)); in gmap_clear_young_crste() 400 static long _gmap_unmap_crste(union crste *crstep, gfn_t gfn, gfn_t next, struct dat_walk *walk) in _gmap_unmap_crste() argument 404 union crste old = *crstep; in _gmap_unmap_crste() 420 ok = gmap_crstep_xchg_atomic(priv->gmap, crstep, old, _CRSTE_EMPTY(old.h.tt), gfn); in _gmap_unmap_crste() 424 ok = gmap_crstep_xchg_atomic(priv->gmap, crstep, old, _CRSTE_EMPTY(old.h.tt), gfn); in _gmap_unmap_crste() 544 union crste newcrste, oldcrste = READ_ONCE(*f->crstep); in gmap_handle_minor_crste_fault() 569 return !gmap_crstep_xchg_atomic(gmap, f->crstep, oldcrste, newcrste, f->gfn); in gmap_handle_minor_crste_fault() 622 &fault->crstep, &fault->ptep); in gmap_try_fixup_minor() [all …]
|
| H A D | dat.h | 500 union crste *crstep; /* Used to resolve the fault, or NULL */ member 524 bool dat_crstep_xchg_atomic(union crste *crstep, union crste old, union crste new, gfn_t gfn, 526 void dat_crstep_xchg(union crste *crstep, union crste new, gfn_t gfn, union asce asce); 597 static inline struct crst_table *crste_table_start(union crste *crstep) in crste_table_start() argument 599 return (struct crst_table *)ALIGN_DOWN((unsigned long)crstep, _CRST_TABLE_SIZE); in crste_table_start() 607 static inline bool crdte_crste(union crste *crstep, union crste old, union crste new, gfn_t gfn, in crdte_crste() argument 611 void *table = crste_table_start(crstep); in crdte_crste() 624 static __always_inline void idte_crste(union crste *crstep, gfn_t gfn, unsigned long opt, in idte_crste() argument 627 unsigned long table_origin = __pa(crste_table_start(crstep)); in idte_crste() 633 : "+m" (*crstep) in idte_crste() [all …]
|