Lines Matching refs:walk
535 struct dat_walk *walk) in dat_crste_walk_range() argument
549 walk->last = table->crstes + idx; in dat_crste_walk_range()
550 crste = READ_ONCE(*walk->last); in dat_crste_walk_range()
553 if (!(walk->flags & DAT_WALK_IGN_HOLES)) in dat_crste_walk_range()
555 if (!(walk->flags & DAT_WALK_ANY)) in dat_crste_walk_range()
559 the_op = walk->ops->crste_ops[crste.h.tt]; in dat_crste_walk_range()
561 rc = the_op(walk->last, cur, next, walk); in dat_crste_walk_range()
562 crste = READ_ONCE(*walk->last); in dat_crste_walk_range()
569 _dereference_crste(crste), walk); in dat_crste_walk_range()
570 else if (walk->ops->pte_entry) in dat_crste_walk_range()
572 dereference_pmd(crste.pmd), walk); in dat_crste_walk_range()
597 struct dat_walk walk = { in _dat_walk_gfn_range() local
611 return dat_crste_walk_range(start, min(end, asce_end(asce)), table, &walk); in _dat_walk_gfn_range()
789 static long dat_reset_skeys_pte(union pte *ptep, gfn_t gfn, gfn_t next, struct dat_walk *walk) in dat_reset_skeys_pte() argument
807 static long dat_reset_skeys_crste(union crste *crstep, gfn_t gfn, gfn_t next, struct dat_walk *walk) in dat_reset_skeys_crste() argument
814 addr = ((max(gfn, walk->start) - gfn) << PAGE_SHIFT) + origin; in dat_reset_skeys_crste()
815 end = ((min(next, walk->end) - gfn) << PAGE_SHIFT) + origin; in dat_reset_skeys_crste()
842 static long _dat_slot_pte(union pte *ptep, gfn_t gfn, gfn_t next, struct dat_walk *walk) in _dat_slot_pte() argument
844 struct slot_priv *p = walk->priv; in _dat_slot_pte()
854 dat_ptep_xchg(ptep, new_pte, gfn, walk->asce, false); in _dat_slot_pte()
858 static long _dat_slot_crste(union crste *crstep, gfn_t gfn, gfn_t next, struct dat_walk *walk) in _dat_slot_crste() argument
861 struct slot_priv *p = walk->priv; in _dat_slot_crste()
871 if (walk->start <= gfn && walk->end >= next) { in _dat_slot_crste()
872 if (!dat_crstep_xchg_atomic(crstep, crste, new_crste, gfn, walk->asce)) in _dat_slot_crste()
888 return dat_split_crste(p->mc, crstep, gfn, walk->asce, false); in _dat_slot_crste()
969 static long _dat_test_young_pte(union pte *ptep, gfn_t start, gfn_t end, struct dat_walk *walk) in _dat_test_young_pte() argument
975 struct dat_walk *walk) in _dat_test_young_crste() argument
1001 static long dat_set_pn_crste(union crste *crstep, gfn_t gfn, gfn_t next, struct dat_walk *walk) in dat_set_pn_crste() argument
1004 int *n = walk->priv; in dat_set_pn_crste()
1014 } while (!dat_crstep_xchg_atomic(crstep, oldcrste, newcrste, gfn, walk->asce)); in dat_set_pn_crste()
1019 static long dat_set_pn_pte(union pte *ptep, gfn_t gfn, gfn_t next, struct dat_walk *walk) in dat_set_pn_pte() argument
1021 int *n = walk->priv; in dat_set_pn_pte()
1145 static long dat_reset_cmma_pte(union pte *ptep, gfn_t gfn, gfn_t next, struct dat_walk *walk) in dat_reset_cmma_pte() argument
1177 static long __dat_peek_cmma_pte(union pte *ptep, gfn_t gfn, gfn_t next, struct dat_walk *walk) in __dat_peek_cmma_pte() argument
1179 struct dat_get_cmma_state *state = walk->priv; in __dat_peek_cmma_pte()
1183 state->values[gfn - walk->start] = pgste.usage | (pgste.nodat << 6); in __dat_peek_cmma_pte()
1190 static long __dat_peek_cmma_crste(union crste *crstep, gfn_t gfn, gfn_t next, struct dat_walk *walk) in __dat_peek_cmma_crste() argument
1192 struct dat_get_cmma_state *state = walk->priv; in __dat_peek_cmma_crste()
1195 state->end = min(walk->end, next); in __dat_peek_cmma_crste()
1217 static long __dat_get_cmma_pte(union pte *ptep, gfn_t gfn, gfn_t next, struct dat_walk *walk) in __dat_get_cmma_pte() argument
1219 struct dat_get_cmma_state *state = walk->priv; in __dat_get_cmma_pte()
1272 static long __dat_set_cmma_pte(union pte *ptep, gfn_t gfn, gfn_t next, struct dat_walk *walk) in __dat_set_cmma_pte() argument
1274 struct dat_set_cmma_state *state = walk->priv; in __dat_set_cmma_pte()
1277 tmp.val = (state->bits[gfn - walk->start] << 24) & state->mask; in __dat_set_cmma_pte()