Lines Matching refs:userptr

73 	return mmu_interval_notifier_insert(&obj->userptr.notifier, current->mm,
74 obj->userptr.ptr, obj->base.size,
84 if (!--obj->userptr.page_ref) {
85 pvec = obj->userptr.pvec;
86 obj->userptr.pvec = NULL;
88 GEM_BUG_ON(obj->userptr.page_ref < 0);
114 if (!obj->userptr.page_ref) {
119 obj->userptr.page_ref++;
120 pvec = obj->userptr.pvec;
240 if (obj->userptr.notifier.mm != current->mm)
243 notifier_seq = mmu_interval_read_begin(&obj->userptr.notifier);
249 if (notifier_seq == obj->userptr.notifier_seq && obj->userptr.pvec) {
268 ret = pin_user_pages_fast(obj->userptr.ptr + pinned * PAGE_SIZE,
281 if (mmu_interval_read_retry(&obj->userptr.notifier,
282 !obj->userptr.page_ref ? notifier_seq :
283 obj->userptr.notifier_seq)) {
288 if (!obj->userptr.page_ref++) {
289 obj->userptr.pvec = pvec;
290 obj->userptr.notifier_seq = notifier_seq;
295 obj->userptr.page_ref--;
311 if (mmu_interval_read_retry(&obj->userptr.notifier,
312 obj->userptr.notifier_seq)) {
349 GEM_WARN_ON(obj->userptr.page_ref);
351 if (!obj->userptr.notifier.mm)
354 mmu_interval_notifier_remove(&obj->userptr.notifier);
355 obj->userptr.notifier.mm = NULL;
361 drm_dbg(obj->base.dev, "Exporting userptr no longer allowed\n");
370 drm_dbg(obj->base.dev, "pwrite to userptr no longer allowed\n");
379 drm_dbg(obj->base.dev, "pread from userptr no longer allowed\n");
451 * restriction is that we do not allow userptr surfaces to be pinned to the
453 * userptr.
472 /* We cannot support coherent userptr objects on hw without
530 obj->userptr.ptr = args->user_ptr;
531 obj->userptr.notifier_seq = ULONG_MAX;