Lines Matching refs:parent
28 * @parent: pointer to the parent gmap
36 * Context: Called with parent->shadow_lock held
38 static struct gmap *gmap_find_shadow(struct gmap *parent, unsigned long asce, int edat_level)
42 lockdep_assert_held(&parent->shadow_lock);
43 list_for_each_entry(sg, &parent->children, list) {
56 * @parent: pointer to the parent gmap
67 * parent gmap table could not be protected.
69 struct gmap *gmap_shadow(struct gmap *parent, unsigned long asce, int edat_level)
75 if (KVM_BUG_ON(parent->mm->context.allow_gmap_hpage_1m, (struct kvm *)parent->private) ||
76 KVM_BUG_ON(gmap_is_shadow(parent), (struct kvm *)parent->private))
78 spin_lock(&parent->shadow_lock);
79 sg = gmap_find_shadow(parent, asce, edat_level);
80 spin_unlock(&parent->shadow_lock);
90 new->mm = parent->mm;
91 new->parent = gmap_get(parent);
92 new->private = parent->private;
96 spin_lock(&parent->shadow_lock);
98 sg = gmap_find_shadow(parent, asce, edat_level);
100 spin_unlock(&parent->shadow_lock);
106 list_for_each_entry(sg, &parent->children, list) {
118 list_add(&new->list, &parent->children);
122 spin_unlock(&parent->shadow_lock);
125 spin_unlock(&parent->shadow_lock);
127 mmap_read_lock(parent->mm);
128 rc = __kvm_s390_mprotect_many(parent, asce & _ASCE_ORIGIN,
131 mmap_read_unlock(parent->mm);
132 spin_lock(&parent->shadow_lock);
139 spin_unlock(&parent->shadow_lock);