Lines Matching full:parent

29  * @parent: pointer to the parent gmap
37 * Context: Called with parent->shadow_lock held
39 static struct gmap *gmap_find_shadow(struct gmap *parent, unsigned long asce, int edat_level) in gmap_find_shadow() argument
43 lockdep_assert_held(&parent->shadow_lock); in gmap_find_shadow()
44 list_for_each_entry(sg, &parent->children, list) { in gmap_find_shadow()
57 * @parent: pointer to the parent gmap
68 * parent gmap table could not be protected.
70 struct gmap *gmap_shadow(struct gmap *parent, unsigned long asce, int edat_level) in gmap_shadow() argument
76 if (KVM_BUG_ON(parent->mm->context.allow_gmap_hpage_1m, (struct kvm *)parent->private) || in gmap_shadow()
77 KVM_BUG_ON(gmap_is_shadow(parent), (struct kvm *)parent->private)) in gmap_shadow()
79 spin_lock(&parent->shadow_lock); in gmap_shadow()
80 sg = gmap_find_shadow(parent, asce, edat_level); in gmap_shadow()
81 spin_unlock(&parent->shadow_lock); in gmap_shadow()
91 new->mm = parent->mm; in gmap_shadow()
92 new->parent = gmap_get(parent); in gmap_shadow()
93 new->private = parent->private; in gmap_shadow()
97 spin_lock(&parent->shadow_lock); in gmap_shadow()
99 sg = gmap_find_shadow(parent, asce, edat_level); in gmap_shadow()
101 spin_unlock(&parent->shadow_lock); in gmap_shadow()
107 list_for_each_entry(sg, &parent->children, list) { in gmap_shadow()
119 list_add(&new->list, &parent->children); in gmap_shadow()
123 spin_unlock(&parent->shadow_lock); in gmap_shadow()
126 spin_unlock(&parent->shadow_lock); in gmap_shadow()
128 mmap_read_lock(parent->mm); in gmap_shadow()
129 rc = __kvm_s390_mprotect_many(parent, asce & _ASCE_ORIGIN, in gmap_shadow()
132 mmap_read_unlock(parent->mm); in gmap_shadow()
133 spin_lock(&parent->shadow_lock); in gmap_shadow()
140 spin_unlock(&parent->shadow_lock); in gmap_shadow()