aboutsummaryrefslogtreecommitdiff
path: root/bsd-core/drm_vm.c
diff options
context:
space:
mode:
authorRobert Noland <rnoland@2hip.net>2008-09-17 23:10:15 -0400
committerRobert Noland <rnoland@2hip.net>2008-09-17 23:15:08 -0400
commit8ca06eb492f861dbf049a2e104e4e2a5ba814c13 (patch)
treed8fcb83dc398ce6e6d9d9d574d7b64e6939651e3 /bsd-core/drm_vm.c
parentee6bcabc506e4d506fb65447c405f8514ab1f4e1 (diff)
[FreeBSD] Convert to using cdevpriv for file_priv tracking
Diffstat (limited to 'bsd-core/drm_vm.c')
-rw-r--r--bsd-core/drm_vm.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/bsd-core/drm_vm.c b/bsd-core/drm_vm.c
index 7fa33c91..8ee49a28 100644
--- a/bsd-core/drm_vm.c
+++ b/bsd-core/drm_vm.c
@@ -32,20 +32,20 @@ int drm_mmap(struct cdev *kdev, vm_offset_t offset, vm_paddr_t *paddr,
int prot)
{
struct drm_device *dev = drm_get_device_from_kdev(kdev);
+ struct drm_file *file_priv;
drm_local_map_t *map;
- drm_file_t *priv;
enum drm_map_type type;
vm_paddr_t phys;
DRM_LOCK();
- priv = drm_find_file_by_proc(dev, DRM_CURPROC);
+ TAILQ_FOREACH(file_priv, &dev->files, link)
+ if (file_priv->pid == curthread->td_proc->p_pid &&
+ file_priv->uid == curthread->td_ucred->cr_svuid &&
+ file_priv->authenticated == 1)
+ break;
DRM_UNLOCK();
- if (priv == NULL) {
- DRM_ERROR("can't find authenticator\n");
- return EINVAL;
- }
- if (!priv->authenticated)
+ if (!file_priv)
return EACCES;
if (dev->dma && offset >= 0 && offset < ptoa(dev->dma->page_count)) {