drm: Replace filp in ioctl arguments with drm_file *file_priv.
[cascardo/linux.git] / drivers / char / drm / drm_drv.c
index d5cf5cf..e780923 100644 (file)
@@ -49,7 +49,7 @@
 #include "drmP.h"
 #include "drm_core.h"
 
-static int drm_version(struct inode *inode, struct file *filp,
+static int drm_version(struct inode *inode, struct drm_file *file_priv,
                       unsigned int cmd, unsigned long arg);
 
 /** Ioctl table */
@@ -151,19 +151,10 @@ int drm_lastclose(struct drm_device * dev)
        if (dev->irq_enabled)
                drm_irq_uninstall(dev);
 
-       /* Free drawable information memory */
-       for (i = 0; i < dev->drw_bitfield_length / sizeof(*dev->drw_bitfield);
-            i++) {
-               struct drm_drawable_info *info = drm_get_drawable_info(dev, i);
-
-               if (info) {
-                       drm_free(info->rects, info->num_rects *
-                                sizeof(struct drm_clip_rect), DRM_MEM_BUFS);
-                       drm_free(info, sizeof(*info), DRM_MEM_BUFS);
-               }
-       }
-
        mutex_lock(&dev->struct_mutex);
+
+       /* Free drawable information memory */
+       drm_drawable_free_all(dev);
        del_timer(&dev->timer);
 
        /* Clear pid list */
@@ -233,7 +224,7 @@ int drm_lastclose(struct drm_device * dev)
 
        if (dev->lock.hw_lock) {
                dev->sigdata.lock = dev->lock.hw_lock = NULL;   /* SHM removed */
-               dev->lock.filp = NULL;
+               dev->lock.file_priv = NULL;
                wake_up_interruptible(&dev->lock.lock_queue);
        }
        mutex_unlock(&dev->struct_mutex);
@@ -427,11 +418,10 @@ module_exit(drm_core_exit);
  *
  * Fills in the version information in \p arg.
  */
-static int drm_version(struct inode *inode, struct file *filp,
+static int drm_version(struct inode *inode, struct drm_file *file_priv,
                       unsigned int cmd, unsigned long arg)
 {
-       struct drm_file *priv = filp->private_data;
-       struct drm_device *dev = priv->head->dev;
+       struct drm_device *dev = file_priv->head->dev;
        struct drm_version __user *argp = (void __user *)arg;
        struct drm_version version;
        int len;
@@ -455,7 +445,7 @@ static int drm_version(struct inode *inode, struct file *filp,
  * Called whenever a process performs an ioctl on /dev/drm.
  *
  * \param inode device inode.
- * \param filp file pointer.
+ * \param file_priv DRM file private.
  * \param cmd command.
  * \param arg user argument.
  * \return zero on success or negative number on failure.
@@ -466,8 +456,8 @@ static int drm_version(struct inode *inode, struct file *filp,
 int drm_ioctl(struct inode *inode, struct file *filp,
              unsigned int cmd, unsigned long arg)
 {
-       struct drm_file *priv = filp->private_data;
-       struct drm_device *dev = priv->head->dev;
+       struct drm_file *file_priv = filp->private_data;
+       struct drm_device *dev = file_priv->head->dev;
        drm_ioctl_desc_t *ioctl;
        drm_ioctl_t *func;
        unsigned int nr = DRM_IOCTL_NR(cmd);
@@ -475,12 +465,12 @@ int drm_ioctl(struct inode *inode, struct file *filp,
 
        atomic_inc(&dev->ioctl_count);
        atomic_inc(&dev->counts[_DRM_STAT_IOCTLS]);
-       ++priv->ioctl_count;
+       ++file_priv->ioctl_count;
 
        DRM_DEBUG("pid=%d, cmd=0x%02x, nr=0x%02x, dev 0x%lx, auth=%d\n",
                  current->pid, cmd, nr,
-                 (long)old_encode_dev(priv->head->device),
-                 priv->authenticated);
+                 (long)old_encode_dev(file_priv->head->device),
+                 file_priv->authenticated);
 
        if ((nr >= DRM_CORE_IOCTL_COUNT) &&
            ((nr < DRM_COMMAND_BASE) || (nr >= DRM_COMMAND_END)))
@@ -502,11 +492,11 @@ int drm_ioctl(struct inode *inode, struct file *filp,
                DRM_DEBUG("no function\n");
                retcode = -EINVAL;
        } else if (((ioctl->flags & DRM_ROOT_ONLY) && !capable(CAP_SYS_ADMIN)) ||
-                  ((ioctl->flags & DRM_AUTH) && !priv->authenticated) ||
-                  ((ioctl->flags & DRM_MASTER) && !priv->master)) {
+                  ((ioctl->flags & DRM_AUTH) && !file_priv->authenticated) ||
+                  ((ioctl->flags & DRM_MASTER) && !file_priv->master)) {
                retcode = -EACCES;
        } else {
-               retcode = func(inode, filp, cmd, arg);
+               retcode = func(inode, file_priv, cmd, arg);
        }
 
       err_i1: