Lines Matching refs:userptr
63 struct drm_i915_gem_object *obj = container_of(mni, struct drm_i915_gem_object, userptr.notifier); in i915_gem_userptr_invalidate()
103 return mmu_interval_notifier_insert(&obj->userptr.notifier, current->mm, in i915_gem_userptr_init__mmu_notifier()
104 obj->userptr.ptr, obj->base.size, in i915_gem_userptr_init__mmu_notifier()
114 if (!--obj->userptr.page_ref) { in i915_gem_object_userptr_drop_ref()
115 pvec = obj->userptr.pvec; in i915_gem_object_userptr_drop_ref()
116 obj->userptr.pvec = NULL; in i915_gem_object_userptr_drop_ref()
118 GEM_BUG_ON(obj->userptr.page_ref < 0); in i915_gem_object_userptr_drop_ref()
141 if (!obj->userptr.page_ref) { in i915_gem_userptr_get_pages()
146 obj->userptr.page_ref++; in i915_gem_userptr_get_pages()
147 pvec = obj->userptr.pvec; in i915_gem_userptr_get_pages()
265 if (obj->userptr.notifier.mm != current->mm) in i915_gem_object_userptr_submit_init()
268 notifier_seq = mmu_interval_read_begin(&obj->userptr.notifier); in i915_gem_object_userptr_submit_init()
274 if (notifier_seq == obj->userptr.notifier_seq && obj->userptr.pvec) { in i915_gem_object_userptr_submit_init()
293 ret = pin_user_pages_fast(obj->userptr.ptr + pinned * PAGE_SIZE, in i915_gem_object_userptr_submit_init()
307 if (mmu_interval_read_retry(&obj->userptr.notifier, in i915_gem_object_userptr_submit_init()
308 !obj->userptr.page_ref ? notifier_seq : in i915_gem_object_userptr_submit_init()
309 obj->userptr.notifier_seq)) { in i915_gem_object_userptr_submit_init()
314 if (!obj->userptr.page_ref++) { in i915_gem_object_userptr_submit_init()
315 obj->userptr.pvec = pvec; in i915_gem_object_userptr_submit_init()
316 obj->userptr.notifier_seq = notifier_seq; in i915_gem_object_userptr_submit_init()
321 obj->userptr.page_ref--; in i915_gem_object_userptr_submit_init()
337 if (mmu_interval_read_retry(&obj->userptr.notifier, in i915_gem_object_userptr_submit_done()
338 obj->userptr.notifier_seq)) { in i915_gem_object_userptr_submit_done()
375 GEM_WARN_ON(obj->userptr.page_ref); in i915_gem_userptr_release()
377 mmu_interval_notifier_remove(&obj->userptr.notifier); in i915_gem_userptr_release()
378 obj->userptr.notifier.mm = NULL; in i915_gem_userptr_release()
555 obj->userptr.ptr = args->user_ptr; in i915_gem_userptr_ioctl()
556 obj->userptr.notifier_seq = ULONG_MAX; in i915_gem_userptr_ioctl()