Lines Matching refs:userptr
74 obj->userptr.work = NULL; in __cancel_userptr__worker()
99 unsigned long end = mo->obj->userptr.ptr + mo->obj->base.size; in cancel_userptr()
219 if (!obj->userptr.workers) in i915_mmu_notifier_add()
264 mo = obj->userptr.mmu_object; in i915_gem_userptr_release__mmu_notifier()
271 obj->userptr.mmu_object = NULL; in i915_gem_userptr_release__mmu_notifier()
307 if (WARN_ON(obj->userptr.mm == NULL)) in i915_gem_userptr_init__mmu_notifier()
310 mn = i915_mmu_notifier_find(obj->userptr.mm); in i915_gem_userptr_init__mmu_notifier()
319 mo->it.start = obj->userptr.ptr; in i915_gem_userptr_init__mmu_notifier()
330 obj->userptr.mmu_object = mo; in i915_gem_userptr_init__mmu_notifier()
426 obj->userptr.mm = mm; in i915_gem_userptr_init__mm_struct()
457 if (obj->userptr.mm == NULL) in i915_gem_userptr_release__mm_struct()
460 kref_put_mutex(&obj->userptr.mm->kref, in i915_gem_userptr_release__mm_struct()
463 obj->userptr.mm = NULL; in i915_gem_userptr_release__mm_struct()
548 if (obj->userptr.mmu_object == NULL) in __i915_gem_userptr_set_active()
551 spin_lock(&obj->userptr.mmu_object->mn->lock); in __i915_gem_userptr_set_active()
555 if (!value || !work_pending(&obj->userptr.mmu_object->work)) in __i915_gem_userptr_set_active()
556 obj->userptr.mmu_object->active = value; in __i915_gem_userptr_set_active()
559 spin_unlock(&obj->userptr.mmu_object->mn->lock); in __i915_gem_userptr_set_active()
583 struct mm_struct *mm = obj->userptr.mm->mm; in __i915_gem_userptr_get_pages_worker()
588 obj->userptr.ptr + pinned * PAGE_SIZE, in __i915_gem_userptr_get_pages_worker()
590 !obj->userptr.read_only, 0, in __i915_gem_userptr_get_pages_worker()
601 if (obj->userptr.work == &work->work) { in __i915_gem_userptr_get_pages_worker()
612 obj->userptr.work = ERR_PTR(ret); in __i915_gem_userptr_get_pages_worker()
617 obj->userptr.workers--; in __i915_gem_userptr_get_pages_worker()
653 if (obj->userptr.workers >= I915_GEM_USERPTR_MAX_WORKERS) in __i915_gem_userptr_get_pages_schedule()
660 obj->userptr.work = &work->work; in __i915_gem_userptr_get_pages_schedule()
661 obj->userptr.workers++; in __i915_gem_userptr_get_pages_schedule()
700 if (IS_ERR(obj->userptr.work)) { in i915_gem_userptr_get_pages()
702 ret = PTR_ERR(obj->userptr.work); in i915_gem_userptr_get_pages()
703 obj->userptr.work = NULL; in i915_gem_userptr_get_pages()
706 if (obj->userptr.work) in i915_gem_userptr_get_pages()
717 if (obj->userptr.mm->mm == current->mm) { in i915_gem_userptr_get_pages()
728 pinned = __get_user_pages_fast(obj->userptr.ptr, num_pages, in i915_gem_userptr_get_pages()
729 !obj->userptr.read_only, pvec); in i915_gem_userptr_get_pages()
752 BUG_ON(obj->userptr.work != NULL); in i915_gem_userptr_put_pages()
785 if (obj->userptr.mmu_object) in i915_gem_userptr_dmabuf_export()
869 obj->userptr.ptr = args->user_ptr; in i915_gem_userptr_ioctl()
870 obj->userptr.read_only = !!(args->flags & I915_USERPTR_READ_ONLY); in i915_gem_userptr_ioctl()