Searched refs:crstep (Results 1 – 3 of 3) sorted by relevance
| /linux/arch/s390/kvm/ |
| H A D | dat.c | 146 void dat_crstep_xchg(union crste *crstep, union crste new, gfn_t gfn, union asce asce) in dat_crstep_xchg() argument 148 if (crstep->h.i) { in dat_crstep_xchg() 149 WRITE_ONCE(*crstep, new); in dat_crstep_xchg() 152 crdte_crste(crstep, *crstep, new, gfn, asce); in dat_crstep_xchg() 157 idte_crste(crstep, gfn, IDTE_GUEST_ASCE, asce, IDTE_GLOBAL); in dat_crstep_xchg() 159 idte_crste(crstep, gfn, 0, NULL_ASCE, IDTE_GLOBAL); in dat_crstep_xchg() 160 WRITE_ONCE(*crstep, new); in dat_crstep_xchg() 178 bool dat_crstep_xchg_atomic(union crste *crstep, union crste old, union crste new, gfn_t gfn, in dat_crstep_xchg_atomic() argument 182 return arch_try_cmpxchg((long *)crstep, &old.val, new.val); in dat_crstep_xchg_atomic() 184 return crdte_crste(crstep, old, new, gfn, asce); in dat_crstep_xchg_atomic() [all …]
|
| H A D | gmap.c | 311 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 316 crste = READ_ONCE(*crstep); in gmap_clear_young_crste() 331 dat_crstep_xchg(crstep, new, gfn, walk->asce); in gmap_clear_young_crste() 390 static long _gmap_unmap_crste(union crste *crstep, gfn_t gfn, gfn_t next, struct dat_walk *walk) in _gmap_unmap_crste() argument 395 if (crstep->h.fc) { in _gmap_unmap_crste() 396 if (crstep->s.fc1.pr && test_bit(GMAP_FLAG_EXPORT_ON_UNMAP, &priv->gmap->flags)) in _gmap_unmap_crste() 397 folio = phys_to_folio(crste_origin_large(*crstep)); in _gmap_unmap_crste() 398 gmap_crstep_xchg(priv->gmap, crstep, _CRSTE_EMPTY(crstep->h.tt), gfn); in _gmap_unmap_crste() 516 union crste newcrste, oldcrste = READ_ONCE(*f->crstep); in gmap_handle_minor_crste_fault() 542 return !dat_crstep_xchg_atomic(f->crstep, oldcrste, newcrste, f->gfn, asce); in gmap_handle_minor_crste_fault() [all …]
|
| H A D | dat.h | 493 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); 578 static inline struct crst_table *crste_table_start(union crste *crstep) in crste_table_start() argument 580 return (struct crst_table *)ALIGN_DOWN((unsigned long)crstep, _CRST_TABLE_SIZE); in crste_table_start() 588 static inline bool crdte_crste(union crste *crstep, union crste old, union crste new, gfn_t gfn, in crdte_crste() argument 592 void *table = crste_table_start(crstep); in crdte_crste() 605 static __always_inline void idte_crste(union crste *crstep, gfn_t gfn, unsigned long opt, in idte_crste() argument 608 unsigned long table_origin = __pa(crste_table_start(crstep)); in idte_crste() 614 : "+m" (*crstep) in idte_crste() [all …]
|