VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / drivers / char / drm / drm_scatter.h
index 6b1b2c7..e5d8293 100644 (file)
@@ -66,6 +66,7 @@ int DRM(sg_alloc)( struct inode *inode, struct file *filp,
 {
        drm_file_t *priv = filp->private_data;
        drm_device_t *dev = priv->dev;
+       drm_scatter_gather_t __user *argp = (void __user *)arg;
        drm_scatter_gather_t request;
        drm_sg_mem_t *entry;
        unsigned long pages, i, j;
@@ -75,9 +76,7 @@ int DRM(sg_alloc)( struct inode *inode, struct file *filp,
        if ( dev->sg )
                return -EINVAL;
 
-       if ( copy_from_user( &request,
-                            (drm_scatter_gather_t *)arg,
-                            sizeof(request) ) )
+       if ( copy_from_user( &request, argp, sizeof(request) ) )
                return -EFAULT;
 
        entry = DRM(alloc)( sizeof(*entry), DRM_MEM_SGLISTS );
@@ -145,9 +144,7 @@ int DRM(sg_alloc)( struct inode *inode, struct file *filp,
 
        request.handle = entry->handle;
 
-       if ( copy_to_user( (drm_scatter_gather_t *)arg,
-                          &request,
-                          sizeof(request) ) ) {
+       if ( copy_to_user( argp, &request, sizeof(request) ) ) {
                DRM(sg_cleanup)( entry );
                return -EFAULT;
        }
@@ -210,7 +207,7 @@ int DRM(sg_free)( struct inode *inode, struct file *filp,
        drm_sg_mem_t *entry;
 
        if ( copy_from_user( &request,
-                            (drm_scatter_gather_t *)arg,
+                            (drm_scatter_gather_t __user *)arg,
                             sizeof(request) ) )
                return -EFAULT;