Home
last modified time | relevance | path

Searched refs:crstep (Results 1 – 5 of 5) sorted by relevance

/linux/arch/s390/kvm/
H A Dgmap.c311 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
317 crste = READ_ONCE(*crstep); in gmap_clear_young_crste()
334 } while (!dat_crstep_xchg_atomic(crstep, crste, new, gfn, walk->asce)); in gmap_clear_young_crste()
393 static long _gmap_unmap_crste(union crste *crstep, gfn_t gfn, gfn_t next, struct dat_walk *walk) in _gmap_unmap_crste() argument
397 union crste old = *crstep; in _gmap_unmap_crste()
405 KVM_BUG_ON(!gmap_crstep_xchg_atomic(priv->gmap, crstep, old, _CRSTE_EMPTY(old.h.tt), gfn), in _gmap_unmap_crste()
524 union crste newcrste, oldcrste = READ_ONCE(*f->crstep); in gmap_handle_minor_crste_fault()
548 return !gmap_crstep_xchg_atomic(gmap, f->crstep, oldcrste, newcrste, f->gfn); in gmap_handle_minor_crste_fault()
601 &fault->crstep, &fault->ptep); in gmap_try_fixup_minor()
639 &f->crstep, &f->ptep); in _gmap_link()
[all …]
H A Ddat.c152 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()
301 static int dat_split_crste(struct kvm_s390_mmu_cache *mc, union crste *crstep, in dat_split_crste() argument
308 old = READ_ONCE(*crstep); in dat_split_crste()
310 return dat_split_ste(mc, &crstep->pmd, gfn, asce, uses_skeys); in dat_split_crste()
335 if (dat_crstep_xchg_atomic(crstep, old, new, gfn, asce)) in dat_split_crste()
337 old = READ_ONCE(*crstep); in dat_split_crste()
615 union crste *crstep; in dat_get_storage_key() local
[all …]
H A Ddat.h493 union crste *crstep; /* Used to resolve the fault, or NULL */ member
516 bool dat_crstep_xchg_atomic(union crste *crstep, union crste old, union crste new, gfn_t gfn,
518 void dat_crstep_xchg(union crste *crstep, union crste new, gfn_t gfn, union asce asce);
576 static inline struct crst_table *crste_table_start(union crste *crstep) in crste_table_start() argument
578 return (struct crst_table *)ALIGN_DOWN((unsigned long)crstep, _CRST_TABLE_SIZE); in crste_table_start()
586 static inline bool crdte_crste(union crste *crstep, union crste old, union crste new, gfn_t gfn, in crdte_crste() argument
590 void *table = crste_table_start(crstep); in crdte_crste()
603 static __always_inline void idte_crste(union crste *crstep, gfn_t gfn, unsigned long opt, in idte_crste() argument
606 unsigned long table_origin = __pa(crste_table_start(crstep)); in idte_crste()
612 : "+m" (*crstep) in idte_crste()
[all …]
H A Dgmap.h199 static inline bool __must_check _gmap_crstep_xchg_atomic(struct gmap *gmap, union crste *crstep, in _gmap_crstep_xchg_atomic() argument
205 if (KVM_BUG_ON(crstep->h.tt != oldcrste.h.tt || newcrste.h.tt != oldcrste.h.tt, gmap->kvm)) in _gmap_crstep_xchg_atomic()
227 return dat_crstep_xchg_atomic(crstep, oldcrste, newcrste, gfn, gmap->asce); in _gmap_crstep_xchg_atomic()
230 static inline bool __must_check gmap_crstep_xchg_atomic(struct gmap *gmap, union crste *crstep, in gmap_crstep_xchg_atomic() argument
234 return _gmap_crstep_xchg_atomic(gmap, crstep, oldcrste, newcrste, gfn, true); in gmap_crstep_xchg_atomic()
H A Dpriv.c1184 union crste *crstep; in _essa_clear_cbrl() local
1193 0, TABLE_TYPE_PAGE_TABLE, &crstep, &ptep)) in _essa_clear_cbrl()