Symbol: asce
arch/s390/boot/vmem.c
554
init_mm.context.asce = get_lowcore()->kernel_asce.val;
arch/s390/include/asm/mmu.h
16
unsigned long asce;
arch/s390/include/asm/mmu_context.h
61
mm->context.asce = __pa(mm->pgd) | _ASCE_TABLE_LENGTH |
arch/s390/include/asm/mmu_context.h
75
get_lowcore()->user_asce.val = next->context.asce;
arch/s390/include/asm/pgalloc.h
177
void base_asce_free(unsigned long asce);
arch/s390/include/asm/pgtable.h
1114
unsigned long opt, unsigned long asce,
arch/s390/include/asm/pgtable.h
1129
opt = opt | (asce & _ASCE_ORIGIN);
arch/s390/include/asm/pgtable.h
1604
unsigned long opt, unsigned long asce,
arch/s390/include/asm/pgtable.h
1624
[r3] "a" (asce), [m4] "i" (local)
arch/s390/include/asm/pgtable.h
1630
unsigned long opt, unsigned long asce,
arch/s390/include/asm/pgtable.h
1651
[r3] "a" (asce), [m4] "i" (local)
arch/s390/include/asm/pgtable.h
641
unsigned long address, unsigned long asce)
arch/s390/include/asm/pgtable.h
648
: [r2] "d" (r2.pair), [asce] "a" (asce)
arch/s390/include/asm/tlbflush.h
22
static inline void __tlb_flush_idte(unsigned long asce)
arch/s390/include/asm/tlbflush.h
30
asm volatile("idte 0,%1,%0" : : "a" (opt), "a" (asce) : "cc");
arch/s390/include/asm/tlbflush.h
60
__tlb_flush_idte(mm->context.asce);
arch/s390/include/asm/tlbflush.h
71
__tlb_flush_idte(init_mm.context.asce);
arch/s390/kvm/dat.c
1013
} while (!dat_crstep_xchg_atomic(crstep, oldcrste, newcrste, gfn, walk->asce));
arch/s390/kvm/dat.c
1032
int dat_set_prefix_notif_bit(union asce asce, gfn_t gfn)
arch/s390/kvm/dat.c
1042
_dat_walk_gfn_range(gfn, gfn + 2, asce, &ops, DAT_WALK_IGN_HOLES, &n);
arch/s390/kvm/dat.c
105
int dat_set_asce_limit(struct kvm_s390_mmu_cache *mc, union asce *asce, int newtype)
arch/s390/kvm/dat.c
1063
int dat_perform_essa(union asce asce, gfn_t gfn, int orc, union essa_state *state, bool *dirty)
arch/s390/kvm/dat.c
1070
if (dat_entry_walk(NULL, gfn, asce, 0, TABLE_TYPE_PAGE_TABLE, &crstep, &ptep)) {
arch/s390/kvm/dat.c
110
while (asce->dt > newtype) {
arch/s390/kvm/dat.c
111
table = dereference_asce(*asce);
arch/s390/kvm/dat.c
1158
long dat_reset_cmma(union asce asce, gfn_t start)
arch/s390/kvm/dat.c
116
asce->rsto = crste.h.fc0.to;
arch/s390/kvm/dat.c
1164
return _dat_walk_gfn_range(start, asce_end(asce), asce, &dat_reset_cmma_ops,
arch/s390/kvm/dat.c
1198
int dat_peek_cmma(gfn_t start, union asce asce, unsigned int *count, u8 *values)
arch/s390/kvm/dat.c
1210
rc = _dat_walk_gfn_range(start, start + *count, asce, &ops, DAT_WALK_DEFAULT, &state);
arch/s390/kvm/dat.c
122
asce->dt--;
arch/s390/kvm/dat.c
124
while (asce->dt < newtype) {
arch/s390/kvm/dat.c
1244
int dat_get_cmma(union asce asce, gfn_t *start, unsigned int *count, u8 *values, atomic64_t *rem)
arch/s390/kvm/dat.c
125
crste = _crste_fc0(asce->rsto, asce->dt + 1);
arch/s390/kvm/dat.c
1254
_dat_walk_gfn_range(*start, asce_end(asce), asce, &ops, DAT_WALK_IGN_HOLES, &state);
arch/s390/kvm/dat.c
1304
int dat_set_cmma_bits(struct kvm_s390_mmu_cache *mc, union asce asce, gfn_t gfn,
arch/s390/kvm/dat.c
131
asce->rsto = __pa(table) >> PAGE_SHIFT;
arch/s390/kvm/dat.c
1315
rc = dat_entry_walk(mc, cur, asce, DAT_WALK_ALLOC, TABLE_TYPE_PAGE_TABLE,
arch/s390/kvm/dat.c
132
asce->dt++;
arch/s390/kvm/dat.c
1320
return _dat_walk_gfn_range(gfn, gfn + count, asce, &ops, DAT_WALK_IGN_HOLES, &state);
arch/s390/kvm/dat.c
153
gfn_t gfn, union asce asce)
arch/s390/kvm/dat.c
158
return crdte_crste(crstep, old, new, gfn, asce);
arch/s390/kvm/dat.c
189
union asce asce, bool uses_skeys)
arch/s390/kvm/dat.c
203
__ptep_ipte(gfn_to_gpa(gfn), (void *)ptep, opts, asce.val, IPTE_GLOBAL);
arch/s390/kvm/dat.c
234
union asce asce, bool uses_skeys)
arch/s390/kvm/dat.c
276
if (dat_pmdp_xchg_atomic(pmdp, old, new, gfn, asce)) {
arch/s390/kvm/dat.c
302
gfn_t gfn, union asce asce, bool uses_skeys)
arch/s390/kvm/dat.c
310
return dat_split_ste(mc, &crstep->pmd, gfn, asce, uses_skeys);
arch/s390/kvm/dat.c
335
if (dat_crstep_xchg_atomic(crstep, old, new, gfn, asce))
arch/s390/kvm/dat.c
378
int dat_entry_walk(struct kvm_s390_mmu_cache *mc, gfn_t gfn, union asce asce, int flags,
arch/s390/kvm/dat.c
396
if (WARN_ON_ONCE(unlikely(!asce.val)))
arch/s390/kvm/dat.c
398
if (WARN_ON_ONCE(unlikely(walk_level > asce.dt)))
arch/s390/kvm/dat.c
400
if (!asce_contains_gfn(asce, gfn))
arch/s390/kvm/dat.c
403
table = dereference_asce(asce);
arch/s390/kvm/dat.c
404
if (asce.dt >= ASCE_TYPE_REGION1) {
arch/s390/kvm/dat.c
416
rc = dat_split_crste(mc, *last, gfn, asce, uses_skeys);
arch/s390/kvm/dat.c
424
if (asce.dt >= ASCE_TYPE_REGION2) {
arch/s390/kvm/dat.c
436
rc = dat_split_crste(mc, *last, gfn, asce, uses_skeys);
arch/s390/kvm/dat.c
444
if (asce.dt >= ASCE_TYPE_REGION3) {
arch/s390/kvm/dat.c
461
rc = dat_split_crste(mc, *last, gfn, asce, uses_skeys);
arch/s390/kvm/dat.c
469
rc = dat_split_crste(mc, *last, gfn, asce, uses_skeys);
arch/s390/kvm/dat.c
493
rc = dat_split_ste(mc, &(*last)->pmd, gfn, asce, uses_skeys);
arch/s390/kvm/dat.c
501
rc = dat_split_ste(mc, &(*last)->pmd, gfn, asce, uses_skeys);
arch/s390/kvm/dat.c
592
long _dat_walk_gfn_range(gfn_t start, gfn_t end, union asce asce,
arch/s390/kvm/dat.c
595
struct crst_table *table = dereference_asce(asce);
arch/s390/kvm/dat.c
598
.asce = asce,
arch/s390/kvm/dat.c
605
if (WARN_ON_ONCE(unlikely(!asce.val)))
arch/s390/kvm/dat.c
607
if (!asce_contains_gfn(asce, start))
arch/s390/kvm/dat.c
610
return dat_crste_walk_range(start, min(end, asce_end(asce)), table, &walk);
arch/s390/kvm/dat.c
613
int dat_get_storage_key(union asce asce, gfn_t gfn, union skey *skey)
arch/s390/kvm/dat.c
621
rc = dat_entry_walk(NULL, gfn, asce, DAT_WALK_ANY, TABLE_TYPE_PAGE_TABLE, &crstep, &ptep);
arch/s390/kvm/dat.c
653
int dat_set_storage_key(struct kvm_s390_mmu_cache *mc, union asce asce, gfn_t gfn,
arch/s390/kvm/dat.c
661
rc = dat_entry_walk(mc, gfn, asce, DAT_WALK_LEAF_ALLOC, TABLE_TYPE_PAGE_TABLE,
arch/s390/kvm/dat.c
708
int dat_cond_set_storage_key(struct kvm_s390_mmu_cache *mmc, union asce asce, gfn_t gfn,
arch/s390/kvm/dat.c
717
rc = dat_entry_walk(mmc, gfn, asce, DAT_WALK_LEAF_ALLOC, TABLE_TYPE_PAGE_TABLE,
arch/s390/kvm/dat.c
755
int dat_reset_reference_bit(union asce asce, gfn_t gfn)
arch/s390/kvm/dat.c
762
rc = dat_entry_walk(NULL, gfn, asce, DAT_WALK_ANY, TABLE_TYPE_PAGE_TABLE, &crstep, &ptep);
arch/s390/kvm/dat.c
825
long dat_reset_skeys(union asce asce, gfn_t start)
arch/s390/kvm/dat.c
833
return _dat_walk_gfn_range(start, asce_end(asce), asce, &ops, DAT_WALK_IGN_HOLES, NULL);
arch/s390/kvm/dat.c
853
dat_ptep_xchg(ptep, new_pte, gfn, walk->asce, false);
arch/s390/kvm/dat.c
871
if (!dat_crstep_xchg_atomic(crstep, crste, new_crste, gfn, walk->asce))
arch/s390/kvm/dat.c
887
return dat_split_crste(p->mc, crstep, gfn, walk->asce, false);
arch/s390/kvm/dat.c
895
int dat_set_slot(struct kvm_s390_mmu_cache *mc, union asce asce, gfn_t start, gfn_t end,
arch/s390/kvm/dat.c
903
return _dat_walk_gfn_range(start, end, asce, &dat_slot_ops,
arch/s390/kvm/dat.c
995
bool dat_test_age_gfn(union asce asce, gfn_t start, gfn_t end)
arch/s390/kvm/dat.c
997
return _dat_walk_gfn_range(start, end, asce, &test_age_ops, 0, NULL) > 0;
arch/s390/kvm/dat.h
29
#define _ASCE(x) ((union asce) { .val = (x), })
arch/s390/kvm/dat.h
367
union asce asce;
arch/s390/kvm/dat.h
515
gfn_t gfn, union asce asce, bool uses_skeys);
arch/s390/kvm/dat.h
517
union asce asce);
arch/s390/kvm/dat.h
518
void dat_crstep_xchg(union crste *crstep, union crste new, gfn_t gfn, union asce asce);
arch/s390/kvm/dat.h
520
long _dat_walk_gfn_range(gfn_t start, gfn_t end, union asce asce,
arch/s390/kvm/dat.h
523
int dat_entry_walk(struct kvm_s390_mmu_cache *mc, gfn_t gfn, union asce asce, int flags,
arch/s390/kvm/dat.h
527
int dat_set_asce_limit(struct kvm_s390_mmu_cache *mc, union asce *asce, int newtype);
arch/s390/kvm/dat.h
528
int dat_get_storage_key(union asce asce, gfn_t gfn, union skey *skey);
arch/s390/kvm/dat.h
529
int dat_set_storage_key(struct kvm_s390_mmu_cache *mc, union asce asce, gfn_t gfn,
arch/s390/kvm/dat.h
531
int dat_cond_set_storage_key(struct kvm_s390_mmu_cache *mmc, union asce asce, gfn_t gfn,
arch/s390/kvm/dat.h
533
int dat_reset_reference_bit(union asce asce, gfn_t gfn);
arch/s390/kvm/dat.h
534
long dat_reset_skeys(union asce asce, gfn_t start);
arch/s390/kvm/dat.h
539
int dat_set_slot(struct kvm_s390_mmu_cache *mc, union asce asce, gfn_t start, gfn_t end,
arch/s390/kvm/dat.h
541
int dat_set_prefix_notif_bit(union asce asce, gfn_t gfn);
arch/s390/kvm/dat.h
542
bool dat_test_age_gfn(union asce asce, gfn_t start, gfn_t end);
arch/s390/kvm/dat.h
544
int dat_perform_essa(union asce asce, gfn_t gfn, int orc, union essa_state *state, bool *dirty);
arch/s390/kvm/dat.h
545
long dat_reset_cmma(union asce asce, gfn_t start_gfn);
arch/s390/kvm/dat.h
546
int dat_peek_cmma(gfn_t start, union asce asce, unsigned int *count, u8 *values);
arch/s390/kvm/dat.h
547
int dat_get_cmma(union asce asce, gfn_t *start, unsigned int *count, u8 *values, atomic64_t *rem);
arch/s390/kvm/dat.h
548
int dat_set_cmma_bits(struct kvm_s390_mmu_cache *mc, union asce asce, gfn_t gfn,
arch/s390/kvm/dat.h
587
union asce asce)
arch/s390/kvm/dat.h
592
return crdte(old.val, new.val, table, dtt, gfn_to_gpa(gfn), asce.val);
arch/s390/kvm/dat.h
604
union asce asce, int local)
arch/s390/kvm/dat.h
621
[asce] "a" (asce.val), [local] "i" (local)
arch/s390/kvm/dat.h
638
static inline gfn_t asce_end(union asce asce)
arch/s390/kvm/dat.h
640
return 1ULL << ((asce.dt + 1) * 11 + _SEGMENT_SHIFT - PAGE_SHIFT);
arch/s390/kvm/dat.h
664
static inline bool asce_contains_gfn(union asce asce, gfn_t gfn)
arch/s390/kvm/dat.h
666
return gfn < asce_end(asce);
arch/s390/kvm/dat.h
834
static inline struct crst_table *dereference_asce(union asce asce)
arch/s390/kvm/dat.h
836
return phys_to_virt(asce.val & _ASCE_ORIGIN);
arch/s390/kvm/dat.h
839
static inline void asce_flush_tlb(union asce asce)
arch/s390/kvm/dat.h
841
__tlb_flush_idte(asce.val);
arch/s390/kvm/dat.h
875
static inline void dat_ptep_xchg(union pte *ptep, union pte new, gfn_t gfn, union asce asce,
arch/s390/kvm/dat.h
881
pgste = __dat_ptep_xchg(ptep, pgste, new, gfn, asce, has_skeys);
arch/s390/kvm/dat.h
885
static inline void dat_ptep_clear(union pte *ptep, gfn_t gfn, union asce asce, bool has_skeys)
arch/s390/kvm/dat.h
887
dat_ptep_xchg(ptep, _PTE_EMPTY, gfn, asce, has_skeys);
arch/s390/kvm/dat.h
928
gfn_t gfn, union asce asce)
arch/s390/kvm/dat.h
930
return dat_crstep_xchg_atomic(_CRSTEP(pmdp), _CRSTE(old), _CRSTE(new), gfn, asce);
arch/s390/kvm/dat.h
934
gfn_t gfn, union asce asce)
arch/s390/kvm/dat.h
936
return dat_crstep_xchg_atomic(_CRSTEP(pudp), _CRSTE(old), _CRSTE(new), gfn, asce);
arch/s390/kvm/dat.h
939
static inline union crste dat_crstep_clear_atomic(union crste *crstep, gfn_t gfn, union asce asce)
arch/s390/kvm/dat.h
945
} while (!dat_crstep_xchg_atomic(crstep, oldcrste, empty, gfn, asce));
arch/s390/kvm/dat.h
954
static inline int dat_delete_slot(struct kvm_s390_mmu_cache *mc, union asce asce, gfn_t start,
arch/s390/kvm/dat.h
957
return dat_set_slot(mc, asce, start, start + npages, _DAT_TOKEN_PIC, PGM_ADDRESSING);
arch/s390/kvm/dat.h
960
static inline int dat_create_slot(struct kvm_s390_mmu_cache *mc, union asce asce, gfn_t start,
arch/s390/kvm/dat.h
963
return dat_set_slot(mc, asce, start, start + npages, _DAT_TOKEN_NONE, 0);
arch/s390/kvm/gaccess.c
106
unsigned long asce : 64; /* Address-Space-Control Element */
arch/s390/kvm/gaccess.c
1188
union asce asce;
arch/s390/kvm/gaccess.c
1192
rc = get_vcpu_asce(vcpu, &asce, gva, ar, mode);
arch/s390/kvm/gaccess.c
1195
return guest_range_to_gpas(vcpu, gva, ar, gpa, 1, asce, mode,
arch/s390/kvm/gaccess.c
1211
union asce asce;
arch/s390/kvm/gaccess.c
1214
rc = get_vcpu_asce(vcpu, &asce, gva, ar, mode);
arch/s390/kvm/gaccess.c
1218
rc = guest_range_to_gpas(vcpu, gva, ar, NULL, length, asce, mode,
arch/s390/kvm/gaccess.c
1287
union asce asce;
arch/s390/kvm/gaccess.c
1294
asce = sg->guest_asce;
arch/s390/kvm/gaccess.c
1299
if (asce.r)
arch/s390/kvm/gaccess.c
1303
ptr = asce.rsto * PAGE_SIZE;
arch/s390/kvm/gaccess.c
1305
if (!asce_contains_gfn(asce, gpa_to_gfn(saddr)))
arch/s390/kvm/gaccess.c
1307
switch (asce.dt) {
arch/s390/kvm/gaccess.c
1309
if (vaddr.rfx01 > asce.tl)
arch/s390/kvm/gaccess.c
1313
if (vaddr.rsx01 > asce.tl)
arch/s390/kvm/gaccess.c
1317
if (vaddr.rtx01 > asce.tl)
arch/s390/kvm/gaccess.c
1321
if (vaddr.sx01 > asce.tl)
arch/s390/kvm/gaccess.c
1326
w->level = asce.dt;
arch/s390/kvm/gaccess.c
1327
switch (asce.dt) {
arch/s390/kvm/gaccess.c
1372
if (table.pud.cr && asce.p && sg->edat_level >= 2)
arch/s390/kvm/gaccess.c
1395
if (table.pmd.cs && asce.p)
arch/s390/kvm/gaccess.c
1458
pgste = __dat_ptep_xchg(ptep, pgste, newpte, gpa_to_gfn(raddr), sg->asce, uses_skeys(sg));
arch/s390/kvm/gaccess.c
1500
while (!dat_crstep_xchg_atomic(table, READ_ONCE(*table), newcrste, gfn, sg->asce))
arch/s390/kvm/gaccess.c
1520
rc = dat_entry_walk(NULL, gpa_to_gfn(saddr), sg->asce, DAT_WALK_ANY, TABLE_TYPE_PAGE_TABLE,
arch/s390/kvm/gaccess.c
1552
rc = dat_entry_walk(NULL, entries[LEVEL_MEM].gfn, sg->parent->asce, DAT_WALK_LEAF,
arch/s390/kvm/gaccess.c
1565
rc = dat_entry_walk(mc, gpa_to_gfn(saddr), sg->asce, flags, l, &table, &ptep);
arch/s390/kvm/gaccess.c
1570
rc = dat_entry_walk(mc, entries[LEVEL_MEM].gfn, sg->parent->asce,
arch/s390/kvm/gaccess.c
234
static int ar_translation(struct kvm_vcpu *vcpu, union asce *asce, u8 ar,
arch/s390/kvm/gaccess.c
253
asce->val = vcpu->arch.sie_block->gcr[1];
arch/s390/kvm/gaccess.c
256
asce->val = vcpu->arch.sie_block->gcr[7];
arch/s390/kvm/gaccess.c
320
asce->val = aste.asce;
arch/s390/kvm/gaccess.c
410
static int get_vcpu_asce(struct kvm_vcpu *vcpu, union asce *asce,
arch/s390/kvm/gaccess.c
417
asce->val = 0;
arch/s390/kvm/gaccess.c
418
asce->r = 1;
arch/s390/kvm/gaccess.c
427
asce->val = vcpu->arch.sie_block->gcr[1];
arch/s390/kvm/gaccess.c
430
asce->val = vcpu->arch.sie_block->gcr[7];
arch/s390/kvm/gaccess.c
433
asce->val = vcpu->arch.sie_block->gcr[13];
arch/s390/kvm/gaccess.c
436
rc = ar_translation(vcpu, asce, ar, mode);
arch/s390/kvm/gaccess.c
471
unsigned long *gpa, const union asce asce,
arch/s390/kvm/gaccess.c
487
if (asce.r)
arch/s390/kvm/gaccess.c
489
ptr = asce.rsto * PAGE_SIZE;
arch/s390/kvm/gaccess.c
490
switch (asce.dt) {
arch/s390/kvm/gaccess.c
492
if (vaddr.rfx01 > asce.tl)
arch/s390/kvm/gaccess.c
499
if (vaddr.rsx01 > asce.tl)
arch/s390/kvm/gaccess.c
506
if (vaddr.rtx01 > asce.tl)
arch/s390/kvm/gaccess.c
513
if (vaddr.sx01 > asce.tl)
arch/s390/kvm/gaccess.c
518
switch (asce.dt) {
arch/s390/kvm/gaccess.c
566
if (rtte.cr && asce.p && edat2)
arch/s390/kvm/gaccess.c
594
if (ste.cs && asce.p)
arch/s390/kvm/gaccess.c
641
const union asce asce)
arch/s390/kvm/gaccess.c
648
if (psw_bits(*psw).dat && asce.p)
arch/s390/kvm/gaccess.c
660
r = dat_get_storage_key(kvm->arch.gmap->asce, gpa_to_gfn(gpa), &storage_key);
arch/s390/kvm/gaccess.c
671
union asce asce)
arch/s390/kvm/gaccess.c
681
override = override && !(psw_bits(*psw).dat && asce.p);
arch/s390/kvm/gaccess.c
705
enum gacc_mode mode, union asce asce, gpa_t gpa,
arch/s390/kvm/gaccess.c
719
r = dat_get_storage_key(vcpu->arch.gmap->asce, gpa_to_gfn(gpa), &storage_key);
arch/s390/kvm/gaccess.c
729
if (fetch_prot_override_applicable(vcpu, mode, asce) &&
arch/s390/kvm/gaccess.c
776
const union asce asce, enum gacc_mode mode,
arch/s390/kvm/gaccess.c
786
lap_enabled = low_address_protection_enabled(vcpu, asce);
arch/s390/kvm/gaccess.c
794
rc = guest_translate_gva(vcpu, ga, &gpa, asce, mode, &prot);
arch/s390/kvm/gaccess.c
806
rc = vcpu_check_access_key_gpa(vcpu, access_key, mode, asce, gpa, ga, fragment_len);
arch/s390/kvm/gaccess.c
940
union asce asce;
arch/s390/kvm/gaccess.c
948
rc = get_vcpu_asce(vcpu, &asce, ga, ar, mode);
arch/s390/kvm/gaccess.c
957
try_fetch_prot_override = fetch_prot_override_applicable(vcpu, mode, asce);
arch/s390/kvm/gaccess.c
959
need_ipte_lock = psw_bits(*psw).dat && !asce.r;
arch/s390/kvm/gaccess.c
972
rc = guest_range_to_gpas(vcpu, ga, ar, gpas, len, asce, mode, 0);
arch/s390/kvm/gmap.c
1018
rc = dat_entry_walk(mc, p_gfn, sg->parent->asce, flags,
arch/s390/kvm/gmap.c
1055
gfn = _dat_walk_gfn_range(gfn, asce_end(gmap->asce), gmap->asce, &ops,
arch/s390/kvm/gmap.c
1072
if (dat_entry_walk(NULL, r_gfn, sg->asce, 0, level, &crstep, &ptep))
arch/s390/kvm/gmap.c
1076
dat_ptep_xchg(ptep, _PTE_EMPTY, r_gfn, sg->asce, uses_skeys(sg));
arch/s390/kvm/gmap.c
1080
crste = dat_crstep_clear_atomic(crstep, r_gfn, sg->asce);
arch/s390/kvm/gmap.c
1141
static struct gmap *gmap_find_shadow(struct gmap *parent, union asce asce, int edat_level)
arch/s390/kvm/gmap.c
1147
if (!gmap_is_shadow_valid(sg, asce, edat_level))
arch/s390/kvm/gmap.c
1216
union asce asce = sg->guest_asce;
arch/s390/kvm/gmap.c
1225
rc = kvm_s390_get_guest_pages(sg->kvm, context.f, asce.rsto, asce.dt + 1, false);
arch/s390/kvm/gmap.c
1254
union asce asce, int edat_level)
arch/s390/kvm/gmap.c
1263
sg = gmap_find_shadow(parent, asce, edat_level);
arch/s390/kvm/gmap.c
1270
new = gmap_new(parent->kvm, asce.r ? 1UL << (64 - PAGE_SHIFT) : asce_end(asce));
arch/s390/kvm/gmap.c
1273
new->guest_asce = asce;
arch/s390/kvm/gmap.c
1279
sg = gmap_find_shadow(parent, asce, edat_level);
arch/s390/kvm/gmap.c
1285
if (asce.r) {
arch/s390/kvm/gmap.c
142
rc = dat_set_asce_limit(mc, &gmap->asce, type);
arch/s390/kvm/gmap.c
199
KVM_BUG_ON(!gmap->asce.val, gmap->kvm);
arch/s390/kvm/gmap.c
204
asce_flush_tlb(gmap->asce);
arch/s390/kvm/gmap.c
207
dat_free_level(dereference_asce(gmap->asce), owns_page_tables(gmap));
arch/s390/kvm/gmap.c
235
union asce asce;
arch/s390/kvm/gmap.c
238
if (gmap->asce.dt == ASCE_TYPE_SEGMENT)
arch/s390/kvm/gmap.c
244
memcpy(table, dereference_asce(gmap->asce), sizeof(*table));
arch/s390/kvm/gmap.c
247
asce = gmap->asce;
arch/s390/kvm/gmap.c
248
asce.rsto = virt_to_pfn(table);
arch/s390/kvm/gmap.c
249
WRITE_ONCE(gmap->asce, asce);
arch/s390/kvm/gmap.c
304
pgste = __dat_ptep_xchg(ptep, pgste, new, gfn, walk->asce, uses_skeys(p->gmap));
arch/s390/kvm/gmap.c
334
} while (!dat_crstep_xchg_atomic(crstep, crste, new, gfn, walk->asce));
arch/s390/kvm/gmap.c
361
_dat_walk_gfn_range(start, end, gmap->asce, &ops, 0, &priv);
arch/s390/kvm/gmap.c
437
_dat_walk_gfn_range(start, end, gmap->asce, &ops, 0, &priv);
arch/s390/kvm/gmap.c
519
_dat_walk_gfn_range(start, end, gmap->asce, &walk_ops, 0, gmap);
arch/s390/kvm/gmap.c
600
rc = dat_entry_walk(NULL, fault->gfn, gmap->asce, DAT_WALK_LEAF, TABLE_TYPE_PAGE_TABLE,
arch/s390/kvm/gmap.c
638
rc = dat_entry_walk(mc, f->gfn, gmap->asce, DAT_WALK_ALLOC_CONTINUE, level,
arch/s390/kvm/gmap.c
709
rc = dat_entry_walk(mc, p_gfn, gmap->parent->asce, DAT_WALK_ALLOC,
arch/s390/kvm/gmap.c
712
rc = dat_entry_walk(mc, p_gfn, gmap->parent->asce, DAT_WALK_ALLOC_CONTINUE,
arch/s390/kvm/gmap.c
725
rc = dat_entry_walk(mc, c_gfn, gmap->asce, DAT_WALK_ALLOC, TABLE_TYPE_SEGMENT,
arch/s390/kvm/gmap.c
733
} while (!dat_crstep_xchg_atomic(crstep, oldcrste, newcrste, c_gfn, gmap->asce));
arch/s390/kvm/gmap.c
742
rc = dat_entry_walk(NULL, gpa_to_gfn(*gaddr), gmap->asce, DAT_WALK_CONTINUE,
arch/s390/kvm/gmap.c
77
gmap->asce.val = __pa(table);
arch/s390/kvm/gmap.c
78
gmap->asce.dt = type;
arch/s390/kvm/gmap.c
79
gmap->asce.tl = _ASCE_TABLE_LENGTH;
arch/s390/kvm/gmap.c
80
gmap->asce.x = 1;
arch/s390/kvm/gmap.c
81
gmap->asce.p = 1;
arch/s390/kvm/gmap.c
82
gmap->asce.s = 1;
arch/s390/kvm/gmap.c
836
rc = dat_entry_walk(NULL, c_gfn, gmap->asce, 0, TABLE_TYPE_SEGMENT, &crstep, &ptep);
arch/s390/kvm/gmap.c
839
while (!dat_crstep_xchg_atomic(crstep, READ_ONCE(*crstep), _PMD_EMPTY, c_gfn, gmap->asce))
arch/s390/kvm/gmap.c
864
if (dat_crstep_xchg_atomic(crstep, crste, newcrste, gfn, walk->asce))
arch/s390/kvm/gmap.c
885
start = _dat_walk_gfn_range(start, asce_end(gmap->asce), gmap->asce,
arch/s390/kvm/gmap.c
908
start = dat_reset_skeys(gmap->asce, start);
arch/s390/kvm/gmap.c
961
start = _dat_walk_gfn_range(start, end, gmap->asce, &ops,
arch/s390/kvm/gmap.h
107
union asce asce, int edat_level);
arch/s390/kvm/gmap.h
190
return __dat_ptep_xchg(ptep, pgste, newpte, gfn, gmap->asce, uses_skeys(gmap));
arch/s390/kvm/gmap.h
227
return dat_crstep_xchg_atomic(crstep, oldcrste, newcrste, gfn, gmap->asce);
arch/s390/kvm/gmap.h
248
static inline bool gmap_is_shadow_valid(struct gmap *sg, union asce asce, int edat_level)
arch/s390/kvm/gmap.h
250
return sg->guest_asce.val == asce.val && sg->edat_level == edat_level;
arch/s390/kvm/gmap.h
64
union asce asce;
arch/s390/kvm/gmap.h
70
union asce guest_asce;
arch/s390/kvm/kvm-s390.c
1016
(void *)kvm->arch.gmap->asce.val);
arch/s390/kvm/kvm-s390.c
2113
r = dat_get_storage_key(kvm->arch.gmap->asce,
arch/s390/kvm/kvm-s390.c
2180
r = dat_set_storage_key(mc, kvm->arch.gmap->asce,
arch/s390/kvm/kvm-s390.c
2234
ret = dat_peek_cmma(args->start_gfn, kvm->arch.gmap->asce, &args->count,
arch/s390/kvm/kvm-s390.c
2237
ret = dat_get_cmma(kvm->arch.gmap->asce, &args->start_gfn, &args->count,
arch/s390/kvm/kvm-s390.c
2295
r = dat_set_cmma_bits(mc, kvm->arch.gmap->asce, args->start_gfn,
arch/s390/kvm/kvm-s390.c
3282
struct crst_table *table = dereference_asce(kvm->arch.gmap->asce);
arch/s390/kvm/kvm-s390.c
4255
rc = dat_set_prefix_notif_bit(vcpu->kvm->arch.gmap->asce, gfn);
arch/s390/kvm/kvm-s390.c
4724
vcpu->arch.gmap->asce.val);
arch/s390/kvm/kvm-s390.c
560
union asce asce = kvm->arch.gmap->asce;
arch/s390/kvm/kvm-s390.c
568
r = dat_cond_set_storage_key(mc, asce, gfn, skey, &skey, 0, 0, 0);
arch/s390/kvm/kvm-s390.c
5718
rc = dat_delete_slot(mc, kvm->arch.gmap->asce, old->base_gfn, old->npages);
arch/s390/kvm/kvm-s390.c
5721
rc = dat_delete_slot(mc, kvm->arch.gmap->asce, old->base_gfn, old->npages);
arch/s390/kvm/kvm-s390.c
5726
rc = dat_create_slot(mc, kvm->arch.gmap->asce, new->base_gfn, new->npages);
arch/s390/kvm/kvm-s390.c
573
r = dat_get_storage_key(asce, gfn, &skey);
arch/s390/kvm/kvm-s390.c
5752
return dat_test_age_gfn(kvm->arch.gmap->asce, range->start, range->end);
arch/s390/kvm/kvm-s390.c
578
r = dat_reset_reference_bit(asce, gfn);
arch/s390/kvm/kvm-s390.c
989
start_gfn = dat_reset_cmma(kvm->arch.gmap->asce, start_gfn);
arch/s390/kvm/priv.c
1114
rc = dat_cond_set_storage_key(vcpu->arch.mc, vcpu->arch.gmap->asce,
arch/s390/kvm/priv.c
1161
nappended = dat_perform_essa(vcpu->arch.gmap->asce, gfn, orc, &state, &dirtied);
arch/s390/kvm/priv.c
1192
if (dat_entry_walk(NULL, gpa_to_gfn(cbrl[i]), vcpu->arch.gmap->asce,
arch/s390/kvm/priv.c
279
rc = dat_get_storage_key(vcpu->arch.gmap->asce, gpa_to_gfn(gaddr), &key);
arch/s390/kvm/priv.c
310
rc = dat_reset_reference_bit(vcpu->arch.gmap->asce, gpa_to_gfn(gaddr));
arch/s390/kvm/priv.c
362
rc = dat_cond_set_storage_key(vcpu->arch.mc, vcpu->arch.gmap->asce,
arch/s390/kvm/pv.c
466
if (kvm->arch.gmap->asce.dt == TABLE_TYPE_SEGMENT)
arch/s390/kvm/pv.c
479
priv->old_gmap_table = (unsigned long)dereference_asce(kvm->arch.gmap->asce);
arch/s390/kvm/pv.c
605
gmap_pv_destroy_range(kvm->arch.gmap, 0, asce_end(kvm->arch.gmap->asce), false);
arch/s390/kvm/pv.c
643
if (gmap_pv_destroy_range(kvm->arch.gmap, 0, asce_end(kvm->arch.gmap->asce), true))
arch/s390/kvm/pv.c
716
uvcb.guest_asce = kvm->arch.gmap->asce.val;
arch/s390/kvm/vsie.c
1167
sie_return = kvm_s390_enter_exit_sie(scb_s, vcpu->run->s.regs.gprs, sg->asce.val);
arch/s390/kvm/vsie.c
1236
union asce asce;
arch/s390/kvm/vsie.c
1239
asce.val = vcpu->arch.sie_block->gcr[1];
arch/s390/kvm/vsie.c
1252
if (gmap_is_shadow_valid(gmap, asce, edat)) {
arch/s390/kvm/vsie.c
1262
gmap = gmap_create_shadow(vcpu->arch.mc, vcpu->kvm->arch.gmap, asce, edat);
arch/s390/mm/fault.c
133
unsigned long asce;
arch/s390/mm/fault.c
163
asce = get_lowcore()->kernel_asce.val;
arch/s390/mm/fault.c
166
asce = get_lowcore()->user_asce.val;
arch/s390/mm/fault.c
170
dump_pagetable(asce, get_fault_address(regs));
arch/s390/mm/fault.c
77
static void dump_pagetable(unsigned long asce, unsigned long address)
arch/s390/mm/fault.c
79
unsigned long entry, *table = __va(asce & _ASCE_ORIGIN);
arch/s390/mm/fault.c
81
pr_alert("AS:%016lx ", asce);
arch/s390/mm/fault.c
82
switch (asce & _ASCE_TYPE_MASK) {
arch/s390/mm/pgalloc.c
100
mm->context.asce = __pa(mm->pgd) | _ASCE_TABLE_LENGTH |
arch/s390/mm/pgalloc.c
367
void base_asce_free(unsigned long asce)
arch/s390/mm/pgalloc.c
369
unsigned long *table = __va(asce & _ASCE_ORIGIN);
arch/s390/mm/pgalloc.c
371
if (!asce)
arch/s390/mm/pgalloc.c
373
switch (asce & _ASCE_TYPE_MASK) {
arch/s390/mm/pgalloc.c
421
unsigned long asce, *table, end;
arch/s390/mm/pgalloc.c
43
struct ctlreg asce;
arch/s390/mm/pgalloc.c
432
asce = __pa(table) | _ASCE_TYPE_SEGMENT | _ASCE_TABLE_LENGTH;
arch/s390/mm/pgalloc.c
438
asce = __pa(table) | _ASCE_TYPE_REGION3 | _ASCE_TABLE_LENGTH;
arch/s390/mm/pgalloc.c
444
asce = __pa(table) | _ASCE_TYPE_REGION2 | _ASCE_TABLE_LENGTH;
arch/s390/mm/pgalloc.c
450
asce = __pa(table) | _ASCE_TYPE_REGION1 | _ASCE_TABLE_LENGTH;
arch/s390/mm/pgalloc.c
453
base_asce_free(asce);
arch/s390/mm/pgalloc.c
454
asce = 0;
arch/s390/mm/pgalloc.c
456
return asce;
arch/s390/mm/pgalloc.c
47
asce.val = mm->context.asce;
arch/s390/mm/pgalloc.c
48
get_lowcore()->user_asce = asce;
arch/s390/mm/pgalloc.c
49
local_ctl_load(7, &asce);
arch/s390/mm/pgalloc.c
51
local_ctl_load(1, &asce);
arch/s390/mm/pgalloc.c
91
mm->context.asce = __pa(mm->pgd) | _ASCE_TABLE_LENGTH |
arch/s390/mm/pgtable.c
185
__pmdp_idte(addr, pmdp, IDTE_NODAT | IDTE_GUEST_ASCE, mm->context.asce, IDTE_LOCAL);
arch/s390/mm/pgtable.c
195
mm->context.asce, IDTE_GLOBAL);
arch/s390/mm/pgtable.c
270
mm->context.asce, IDTE_LOCAL);
arch/s390/mm/pgtable.c
280
mm->context.asce, IDTE_GLOBAL);
arch/s390/mm/pgtable.c
42
unsigned long opt, asce;
arch/s390/mm/pgtable.c
46
asce = READ_ONCE(mm->context.gmap_asce);
arch/s390/mm/pgtable.c
47
if (asce == 0UL || nodat)
arch/s390/mm/pgtable.c
49
if (asce != -1UL) {
arch/s390/mm/pgtable.c
50
asce = asce ? : mm->context.asce;
arch/s390/mm/pgtable.c
53
__ptep_ipte(addr, ptep, opt, asce, IPTE_LOCAL);
arch/s390/mm/pgtable.c
62
unsigned long opt, asce;
arch/s390/mm/pgtable.c
66
asce = READ_ONCE(mm->context.gmap_asce);
arch/s390/mm/pgtable.c
67
if (asce == 0UL || nodat)
arch/s390/mm/pgtable.c
69
if (asce != -1UL) {
arch/s390/mm/pgtable.c
70
asce = asce ? : mm->context.asce;
arch/s390/mm/pgtable.c
73
__ptep_ipte(addr, ptep, opt, asce, IPTE_GLOBAL);
drivers/s390/char/sclp_diag.h
59
u64 asce;
drivers/s390/char/sclp_ftp.c
111
sccb->evbuf.mdd.ftp.asce = _ASCE_REAL_SPACE;
drivers/s390/char/sclp_sd.c
295
unsigned long page, asce = 0;
drivers/s390/char/sclp_sd.c
318
asce = base_asce_alloc((unsigned long) data, dsize);
drivers/s390/char/sclp_sd.c
319
if (!asce) {
drivers/s390/char/sclp_sd.c
326
rc = sclp_sd_sync(page, SD_EQ_STORE_DATA, di, asce, (u64) data, &dsize,
drivers/s390/char/sclp_sd.c
335
asce = 0;
drivers/s390/char/sclp_sd.c
348
base_asce_free(asce);