git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git]
/
drivers
/
char
/
drm
/
i830_dma.c
diff --git
a/drivers/char/drm/i830_dma.c
b/drivers/char/drm/i830_dma.c
index
03daa46
..
856dc81
100644
(file)
--- a/
drivers/char/drm/i830_dma.c
+++ b/
drivers/char/drm/i830_dma.c
@@
-153,6
+153,7
@@
static int i830_map_buffer(drm_buf_t *buf, struct file *filp)
drm_i830_buf_priv_t *buf_priv = buf->dev_private;
drm_i830_private_t *dev_priv = dev->dev_private;
struct file_operations *old_fops;
drm_i830_buf_priv_t *buf_priv = buf->dev_private;
drm_i830_private_t *dev_priv = dev->dev_private;
struct file_operations *old_fops;
+ unsigned long virtual;
int retcode = 0;
if(buf_priv->currently_mapped == I830_BUF_MAPPED) return -EINVAL;
int retcode = 0;
if(buf_priv->currently_mapped == I830_BUF_MAPPED) return -EINVAL;
@@
-161,17
+162,17
@@
static int i830_map_buffer(drm_buf_t *buf, struct file *filp)
old_fops = filp->f_op;
filp->f_op = &i830_buffer_fops;
dev_priv->mmap_buffer = buf;
old_fops = filp->f_op;
filp->f_op = &i830_buffer_fops;
dev_priv->mmap_buffer = buf;
- buf_priv->virtual = (void __user *)do_mmap(filp, 0, buf->total,
- PROT_READ|PROT_WRITE,
- MAP_SHARED,
- buf->bus_address);
+ virtual = do_mmap(filp, 0, buf->total, PROT_READ|PROT_WRITE,
+ MAP_SHARED, buf->bus_address);
dev_priv->mmap_buffer = NULL;
filp->f_op = old_fops;
dev_priv->mmap_buffer = NULL;
filp->f_op = old_fops;
- if (IS_ERR(
buf_priv->virtual)) {
+ if (IS_ERR(
(void *)virtual)) { /* ugh */
/* Real error */
DRM_ERROR("mmap error\n");
/* Real error */
DRM_ERROR("mmap error\n");
- retcode = PTR_ERR(buf_priv->virtual);
- buf_priv->virtual = 0;
+ retcode = virtual;
+ buf_priv->virtual = NULL;
+ } else {
+ buf_priv->virtual = (void __user *)virtual;
}
up_write( ¤t->mm->mmap_sem );
}
up_write( ¤t->mm->mmap_sem );
@@
-193,7
+194,7
@@
static int i830_unmap_buffer(drm_buf_t *buf)
up_write(¤t->mm->mmap_sem);
buf_priv->currently_mapped = I830_BUF_UNMAPPED;
up_write(¤t->mm->mmap_sem);
buf_priv->currently_mapped = I830_BUF_UNMAPPED;
- buf_priv->virtual =
0
;
+ buf_priv->virtual =
NULL
;
return retcode;
}
return retcode;
}
@@
-232,12
+233,12
@@
int i830_dma_cleanup(drm_device_t *dev)
{
drm_device_dma_t *dma = dev->dma;
{
drm_device_dma_t *dma = dev->dma;
-#if _
HAVE_DMA
_IRQ
+#if _
_HAVE
_IRQ
/* Make sure interrupts are disabled here because the uninstall ioctl
* may not have been called from userspace and after dev_private
* is freed, it's too late.
*/
/* Make sure interrupts are disabled here because the uninstall ioctl
* may not have been called from userspace and after dev_private
* is freed, it's too late.
*/
- if (
dev->irq
) DRM(irq_uninstall)(dev);
+ if (
dev->irq_enabled
) DRM(irq_uninstall)(dev);
#endif
if (dev->dev_private) {
#endif
if (dev->dev_private) {
@@
-463,7
+464,7
@@
static int i830_dma_initialize(drm_device_t *dev,
}
int i830_dma_init(struct inode *inode, struct file *filp,
}
int i830_dma_init(struct inode *inode, struct file *filp,
- unsigned int cmd, unsigned long
__user
arg)
+ unsigned int cmd, unsigned long arg)
{
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;
{
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;
@@
-1165,7
+1166,7
@@
static void i830_dma_dispatch_vertex(drm_device_t *dev,
DRM_DEBUG( "start + used - 4 : %ld\n", start + used - 4);
if (buf_priv->currently_mapped == I830_BUF_MAPPED) {
DRM_DEBUG( "start + used - 4 : %ld\n", start + used - 4);
if (buf_priv->currently_mapped == I830_BUF_MAPPED) {
- u32 *vp = buf_priv->virtual;
+ u32
__user
*vp = buf_priv->virtual;
put_user( (GFX_OP_PRIMITIVE |
sarea_priv->vertex_prim |
put_user( (GFX_OP_PRIMITIVE |
sarea_priv->vertex_prim |
@@
-1315,7
+1316,7
@@
void i830_reclaim_buffers( struct file *filp )
}
int i830_flush_ioctl(struct inode *inode, struct file *filp,
}
int i830_flush_ioctl(struct inode *inode, struct file *filp,
- unsigned int cmd, unsigned long
__user
arg)
+ unsigned int cmd, unsigned long arg)
{
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;
{
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;
@@
-1330,7
+1331,7
@@
int i830_flush_ioctl(struct inode *inode, struct file *filp,
}
int i830_dma_vertex(struct inode *inode, struct file *filp,
}
int i830_dma_vertex(struct inode *inode, struct file *filp,
- unsigned int cmd, unsigned long
__user
arg)
+ unsigned int cmd, unsigned long arg)
{
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;
{
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;
@@
-1365,7
+1366,7
@@
int i830_dma_vertex(struct inode *inode, struct file *filp,
}
int i830_clear_bufs(struct inode *inode, struct file *filp,
}
int i830_clear_bufs(struct inode *inode, struct file *filp,
- unsigned int cmd, unsigned long
__user
arg)
+ unsigned int cmd, unsigned long arg)
{
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;
{
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;
@@
-1392,7
+1393,7
@@
int i830_clear_bufs(struct inode *inode, struct file *filp,
}
int i830_swap_bufs(struct inode *inode, struct file *filp,
}
int i830_swap_bufs(struct inode *inode, struct file *filp,
- unsigned int cmd, unsigned long
__user
arg)
+ unsigned int cmd, unsigned long arg)
{
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;
{
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;
@@
-1435,7
+1436,7
@@
int i830_do_cleanup_pageflip( drm_device_t *dev )
}
int i830_flip_bufs(struct inode *inode, struct file *filp,
}
int i830_flip_bufs(struct inode *inode, struct file *filp,
- unsigned int cmd, unsigned long
__user
arg)
+ unsigned int cmd, unsigned long arg)
{
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;
{
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;
@@
-1456,7
+1457,7
@@
int i830_flip_bufs(struct inode *inode, struct file *filp,
}
int i830_getage(struct inode *inode, struct file *filp, unsigned int cmd,
}
int i830_getage(struct inode *inode, struct file *filp, unsigned int cmd,
- unsigned long
__user
arg)
+ unsigned long arg)
{
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;
{
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;
@@
-1470,7
+1471,7
@@
int i830_getage(struct inode *inode, struct file *filp, unsigned int cmd,
}
int i830_getbuf(struct inode *inode, struct file *filp, unsigned int cmd,
}
int i830_getbuf(struct inode *inode, struct file *filp, unsigned int cmd,
- unsigned long
__user
arg)
+ unsigned long arg)
{
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;
{
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;
@@
-1507,7
+1508,7
@@
int i830_getbuf(struct inode *inode, struct file *filp, unsigned int cmd,
int i830_copybuf(struct inode *inode,
struct file *filp,
unsigned int cmd,
int i830_copybuf(struct inode *inode,
struct file *filp,
unsigned int cmd,
- unsigned long
__user
arg)
+ unsigned long arg)
{
/* Never copy - 2.4.x doesn't need it */
return 0;
{
/* Never copy - 2.4.x doesn't need it */
return 0;
@@
-1522,7
+1523,7
@@
int i830_docopy(struct inode *inode, struct file *filp, unsigned int cmd,
int i830_getparam( struct inode *inode, struct file *filp, unsigned int cmd,
int i830_getparam( struct inode *inode, struct file *filp, unsigned int cmd,
- unsigned long
__user
arg )
+ unsigned long arg )
{
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;
{
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;
@@
-1540,7
+1541,7
@@
int i830_getparam( struct inode *inode, struct file *filp, unsigned int cmd,
switch( param.param ) {
case I830_PARAM_IRQ_ACTIVE:
switch( param.param ) {
case I830_PARAM_IRQ_ACTIVE:
- value = dev->irq
? 1 : 0
;
+ value = dev->irq
_enabled
;
break;
default:
return -EINVAL;
break;
default:
return -EINVAL;
@@
-1556,7
+1557,7
@@
int i830_getparam( struct inode *inode, struct file *filp, unsigned int cmd,
int i830_setparam( struct inode *inode, struct file *filp, unsigned int cmd,
int i830_setparam( struct inode *inode, struct file *filp, unsigned int cmd,
- unsigned long
__user
arg )
+ unsigned long arg )
{
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;
{
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;