Lines Matching refs:file_priv
93 int drm_getmagic(struct drm_device *dev, void *data, struct drm_file *file_priv) in drm_getmagic() argument
99 if (!file_priv->magic) { in drm_getmagic()
100 ret = idr_alloc(&file_priv->master->magic_map, file_priv, in drm_getmagic()
103 file_priv->magic = ret; in drm_getmagic()
105 auth->magic = file_priv->magic; in drm_getmagic()
114 struct drm_file *file_priv) in drm_authmagic() argument
122 file = idr_find(&file_priv->master->magic_map, auth->magic); in drm_authmagic()
125 idr_replace(&file_priv->master->magic_map, NULL, auth->magic); in drm_authmagic()
234 drm_master_check_perm(struct drm_device *dev, struct drm_file *file_priv) in drm_master_check_perm() argument
236 if (file_priv->was_master && in drm_master_check_perm()
237 rcu_access_pointer(file_priv->pid) == task_tgid(current)) in drm_master_check_perm()
247 struct drm_file *file_priv) in drm_setmaster_ioctl() argument
253 ret = drm_master_check_perm(dev, file_priv); in drm_setmaster_ioctl()
257 if (drm_is_current_master_locked(file_priv)) in drm_setmaster_ioctl()
265 if (!file_priv->master) { in drm_setmaster_ioctl()
270 if (!file_priv->is_master) { in drm_setmaster_ioctl()
271 ret = drm_new_set_master(dev, file_priv); in drm_setmaster_ioctl()
275 if (file_priv->master->lessor != NULL) { in drm_setmaster_ioctl()
278 file_priv->master->lessee_id); in drm_setmaster_ioctl()
283 drm_set_master(dev, file_priv, false); in drm_setmaster_ioctl()
298 struct drm_file *file_priv) in drm_dropmaster_ioctl() argument
304 ret = drm_master_check_perm(dev, file_priv); in drm_dropmaster_ioctl()
308 if (!drm_is_current_master_locked(file_priv)) { in drm_dropmaster_ioctl()
318 if (file_priv->master->lessor != NULL) { in drm_dropmaster_ioctl()
321 file_priv->master->lessee_id); in drm_dropmaster_ioctl()
326 drm_drop_master(dev, file_priv); in drm_dropmaster_ioctl()
332 int drm_master_open(struct drm_file *file_priv) in drm_master_open() argument
334 struct drm_device *dev = file_priv->minor->dev; in drm_master_open()
342 ret = drm_new_set_master(dev, file_priv); in drm_master_open()
344 spin_lock(&file_priv->master_lookup_lock); in drm_master_open()
345 file_priv->master = drm_master_get(dev->master); in drm_master_open()
346 spin_unlock(&file_priv->master_lookup_lock); in drm_master_open()
353 void drm_master_release(struct drm_file *file_priv) in drm_master_release() argument
355 struct drm_device *dev = file_priv->minor->dev; in drm_master_release()
359 master = file_priv->master; in drm_master_release()
360 if (file_priv->magic) in drm_master_release()
361 idr_remove(&file_priv->master->magic_map, file_priv->magic); in drm_master_release()
363 if (!drm_is_current_master_locked(file_priv)) in drm_master_release()
366 if (dev->master == file_priv->master) in drm_master_release()
367 drm_drop_master(dev, file_priv); in drm_master_release()
369 if (drm_core_check_feature(dev, DRIVER_MODESET) && file_priv->is_master) { in drm_master_release()
377 if (file_priv->master) in drm_master_release()
378 drm_master_put(&file_priv->master); in drm_master_release()
405 struct drm_master *drm_file_get_master(struct drm_file *file_priv) in drm_file_get_master() argument
409 spin_lock(&file_priv->master_lookup_lock); in drm_file_get_master()
410 if (!file_priv->master) in drm_file_get_master()
412 master = drm_master_get(file_priv->master); in drm_file_get_master()
415 spin_unlock(&file_priv->master_lookup_lock); in drm_file_get_master()