Lines Matching refs:userptr
64 struct drm_i915_gem_object *obj = container_of(mni, struct drm_i915_gem_object, userptr.notifier); in i915_gem_userptr_invalidate()
104 return mmu_interval_notifier_insert(&obj->userptr.notifier, current->mm, in i915_gem_userptr_init__mmu_notifier()
105 obj->userptr.ptr, obj->base.size, in i915_gem_userptr_init__mmu_notifier()
115 if (!--obj->userptr.page_ref) { in i915_gem_object_userptr_drop_ref()
116 pvec = obj->userptr.pvec; in i915_gem_object_userptr_drop_ref()
117 obj->userptr.pvec = NULL; in i915_gem_object_userptr_drop_ref()
119 GEM_BUG_ON(obj->userptr.page_ref < 0); in i915_gem_object_userptr_drop_ref()
142 if (!obj->userptr.page_ref) { in i915_gem_userptr_get_pages()
147 obj->userptr.page_ref++; in i915_gem_userptr_get_pages()
148 pvec = obj->userptr.pvec; in i915_gem_userptr_get_pages()
269 if (obj->userptr.notifier.mm != current->mm) in i915_gem_object_userptr_submit_init()
272 notifier_seq = mmu_interval_read_begin(&obj->userptr.notifier); in i915_gem_object_userptr_submit_init()
278 if (notifier_seq == obj->userptr.notifier_seq && obj->userptr.pvec) { in i915_gem_object_userptr_submit_init()
297 ret = pin_user_pages_fast(obj->userptr.ptr + pinned * PAGE_SIZE, in i915_gem_object_userptr_submit_init()
311 if (mmu_interval_read_retry(&obj->userptr.notifier, in i915_gem_object_userptr_submit_init()
312 !obj->userptr.page_ref ? notifier_seq : in i915_gem_object_userptr_submit_init()
313 obj->userptr.notifier_seq)) { in i915_gem_object_userptr_submit_init()
318 if (!obj->userptr.page_ref++) { in i915_gem_object_userptr_submit_init()
319 obj->userptr.pvec = pvec; in i915_gem_object_userptr_submit_init()
320 obj->userptr.notifier_seq = notifier_seq; in i915_gem_object_userptr_submit_init()
325 obj->userptr.page_ref--; in i915_gem_object_userptr_submit_init()
341 if (mmu_interval_read_retry(&obj->userptr.notifier, in i915_gem_object_userptr_submit_done()
342 obj->userptr.notifier_seq)) { in i915_gem_object_userptr_submit_done()
379 GEM_WARN_ON(obj->userptr.page_ref); in i915_gem_userptr_release()
381 mmu_interval_notifier_remove(&obj->userptr.notifier); in i915_gem_userptr_release()
382 obj->userptr.notifier.mm = NULL; in i915_gem_userptr_release()
557 obj->userptr.ptr = args->user_ptr; in i915_gem_userptr_ioctl()
558 obj->userptr.notifier_seq = ULONG_MAX; in i915_gem_userptr_ioctl()