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()
145 if (!obj->userptr.page_ref) { in i915_gem_userptr_get_pages()
150 obj->userptr.page_ref++; in i915_gem_userptr_get_pages()
151 pvec = obj->userptr.pvec; in i915_gem_userptr_get_pages()
271 if (obj->userptr.notifier.mm != current->mm) in i915_gem_object_userptr_submit_init()
274 notifier_seq = mmu_interval_read_begin(&obj->userptr.notifier); in i915_gem_object_userptr_submit_init()
280 if (notifier_seq == obj->userptr.notifier_seq && obj->userptr.pvec) { in i915_gem_object_userptr_submit_init()
299 ret = pin_user_pages_fast(obj->userptr.ptr + pinned * PAGE_SIZE, in i915_gem_object_userptr_submit_init()
312 if (mmu_interval_read_retry(&obj->userptr.notifier, in i915_gem_object_userptr_submit_init()
313 !obj->userptr.page_ref ? notifier_seq : in i915_gem_object_userptr_submit_init()
314 obj->userptr.notifier_seq)) { in i915_gem_object_userptr_submit_init()
319 if (!obj->userptr.page_ref++) { in i915_gem_object_userptr_submit_init()
320 obj->userptr.pvec = pvec; in i915_gem_object_userptr_submit_init()
321 obj->userptr.notifier_seq = notifier_seq; in i915_gem_object_userptr_submit_init()
326 obj->userptr.page_ref--; in i915_gem_object_userptr_submit_init()
342 if (mmu_interval_read_retry(&obj->userptr.notifier, in i915_gem_object_userptr_submit_done()
343 obj->userptr.notifier_seq)) { in i915_gem_object_userptr_submit_done()
380 GEM_WARN_ON(obj->userptr.page_ref); in i915_gem_userptr_release()
382 mmu_interval_notifier_remove(&obj->userptr.notifier); in i915_gem_userptr_release()
383 obj->userptr.notifier.mm = NULL; in i915_gem_userptr_release()
558 obj->userptr.ptr = args->user_ptr; in i915_gem_userptr_ioctl()
559 obj->userptr.notifier_seq = ULONG_MAX; in i915_gem_userptr_ioctl()