Lines Matching refs:mo
44 static void add_object(struct i915_mmu_object *mo) in add_object() argument
46 GEM_BUG_ON(!RB_EMPTY_NODE(&mo->it.rb)); in add_object()
47 interval_tree_insert(&mo->it, &mo->mn->objects); in add_object()
50 static void del_object(struct i915_mmu_object *mo) in del_object() argument
52 if (RB_EMPTY_NODE(&mo->it.rb)) in del_object()
55 interval_tree_remove(&mo->it, &mo->mn->objects); in del_object()
56 RB_CLEAR_NODE(&mo->it.rb); in del_object()
62 struct i915_mmu_object *mo = obj->userptr.mmu_object; in __i915_gem_userptr_set_active() local
75 if (!mo) in __i915_gem_userptr_set_active()
78 spin_lock(&mo->mn->lock); in __i915_gem_userptr_set_active()
80 add_object(mo); in __i915_gem_userptr_set_active()
82 del_object(mo); in __i915_gem_userptr_set_active()
83 spin_unlock(&mo->mn->lock); in __i915_gem_userptr_set_active()
177 struct i915_mmu_object *mo; in i915_gem_userptr_release__mmu_notifier() local
179 mo = fetch_and_zero(&obj->userptr.mmu_object); in i915_gem_userptr_release__mmu_notifier()
180 if (!mo) in i915_gem_userptr_release__mmu_notifier()
183 spin_lock(&mo->mn->lock); in i915_gem_userptr_release__mmu_notifier()
184 del_object(mo); in i915_gem_userptr_release__mmu_notifier()
185 spin_unlock(&mo->mn->lock); in i915_gem_userptr_release__mmu_notifier()
186 kfree(mo); in i915_gem_userptr_release__mmu_notifier()
224 struct i915_mmu_object *mo; in i915_gem_userptr_init__mmu_notifier() local
236 mo = kzalloc(sizeof(*mo), GFP_KERNEL); in i915_gem_userptr_init__mmu_notifier()
237 if (!mo) in i915_gem_userptr_init__mmu_notifier()
240 mo->mn = mn; in i915_gem_userptr_init__mmu_notifier()
241 mo->obj = obj; in i915_gem_userptr_init__mmu_notifier()
242 mo->it.start = obj->userptr.ptr; in i915_gem_userptr_init__mmu_notifier()
243 mo->it.last = obj->userptr.ptr + obj->base.size - 1; in i915_gem_userptr_init__mmu_notifier()
244 RB_CLEAR_NODE(&mo->it.rb); in i915_gem_userptr_init__mmu_notifier()
246 obj->userptr.mmu_object = mo; in i915_gem_userptr_init__mmu_notifier()