From: Alexey Dobriyan Signed-off-by: Alexey Dobriyan Cc: Dave Airlie Signed-off-by: Andrew Morton --- drivers/char/drm/via_dma.c | 10 +++++----- drivers/char/drm/via_drm.h | 2 +- drivers/char/drm/via_ds.c | 4 ++-- drivers/char/drm/via_ds.h | 4 ++-- drivers/char/drm/via_map.c | 3 ++- drivers/char/drm/via_mm.c | 15 +++++++++------ drivers/char/drm/via_video.c | 3 ++- 7 files changed, 23 insertions(+), 18 deletions(-) diff -puN drivers/char/drm/via_dma.c~drm-via-fix-sparse-warnings drivers/char/drm/via_dma.c --- 25/drivers/char/drm/via_dma.c~drm-via-fix-sparse-warnings Mon Jul 11 15:16:37 2005 +++ 25-akpm/drivers/char/drm/via_dma.c Mon Jul 11 15:16:37 2005 @@ -231,7 +231,7 @@ int via_dma_init(DRM_IOCTL_ARGS) drm_via_dma_init_t init; int retcode = 0; - DRM_COPY_FROM_USER_IOCTL(init, (drm_via_dma_init_t *) data, + DRM_COPY_FROM_USER_IOCTL(init, (drm_via_dma_init_t __user *) data, sizeof(init)); switch (init.func) { @@ -343,7 +343,7 @@ int via_cmdbuffer(DRM_IOCTL_ARGS) LOCK_TEST_WITH_RETURN( dev, filp ); - DRM_COPY_FROM_USER_IOCTL(cmdbuf, (drm_via_cmdbuffer_t *) data, + DRM_COPY_FROM_USER_IOCTL(cmdbuf, (drm_via_cmdbuffer_t __user *) data, sizeof(cmdbuf)); DRM_DEBUG("via cmdbuffer, buf %p size %lu\n", cmdbuf.buf, cmdbuf.size); @@ -386,7 +386,7 @@ int via_pci_cmdbuffer(DRM_IOCTL_ARGS) LOCK_TEST_WITH_RETURN( dev, filp ); - DRM_COPY_FROM_USER_IOCTL(cmdbuf, (drm_via_cmdbuffer_t *) data, + DRM_COPY_FROM_USER_IOCTL(cmdbuf, (drm_via_cmdbuffer_t __user *) data, sizeof(cmdbuf)); DRM_DEBUG("via_pci_cmdbuffer, buf %p size %lu\n", cmdbuf.buf, @@ -701,7 +701,7 @@ via_cmdbuf_size(DRM_IOCTL_ARGS) return DRM_ERR(EFAULT); } - DRM_COPY_FROM_USER_IOCTL(d_siz, (drm_via_cmdbuf_size_t *) data, + DRM_COPY_FROM_USER_IOCTL(d_siz, (drm_via_cmdbuf_size_t __user *) data, sizeof(d_siz)); @@ -735,7 +735,7 @@ via_cmdbuf_size(DRM_IOCTL_ARGS) } d_siz.size = tmp_size; - DRM_COPY_TO_USER_IOCTL((drm_via_cmdbuf_size_t *) data, d_siz, + DRM_COPY_TO_USER_IOCTL((drm_via_cmdbuf_size_t __user *) data, d_siz, sizeof(d_siz)); return ret; } diff -puN drivers/char/drm/via_drm.h~drm-via-fix-sparse-warnings drivers/char/drm/via_drm.h --- 25/drivers/char/drm/via_drm.h~drm-via-fix-sparse-warnings Mon Jul 11 15:16:37 2005 +++ 25-akpm/drivers/char/drm/via_drm.h Mon Jul 11 15:16:37 2005 @@ -158,7 +158,7 @@ typedef struct _drm_via_dma_init { } drm_via_dma_init_t; typedef struct _drm_via_cmdbuffer { - char *buf; + char __user *buf; unsigned long size; } drm_via_cmdbuffer_t; diff -puN drivers/char/drm/via_ds.c~drm-via-fix-sparse-warnings drivers/char/drm/via_ds.c --- 25/drivers/char/drm/via_ds.c~drm-via-fix-sparse-warnings Mon Jul 11 15:16:37 2005 +++ 25-akpm/drivers/char/drm/via_ds.c Mon Jul 11 15:16:37 2005 @@ -133,7 +133,7 @@ memHeap_t *via_mmInit(int ofs, int size) PMemBlock blocks; if (size <= 0) - return 0; + return NULL; blocks = (TMemBlock *) drm_calloc(1, sizeof(TMemBlock), DRM_MEM_DRIVER); @@ -143,7 +143,7 @@ memHeap_t *via_mmInit(int ofs, int size) blocks->free = 1; return (memHeap_t *) blocks; } else - return 0; + return NULL; } static TMemBlock *SliceBlock(TMemBlock * p, diff -puN drivers/char/drm/via_ds.h~drm-via-fix-sparse-warnings drivers/char/drm/via_ds.h --- 25/drivers/char/drm/via_ds.h~drm-via-fix-sparse-warnings Mon Jul 11 15:16:37 2005 +++ 25-akpm/drivers/char/drm/via_ds.h Mon Jul 11 15:16:37 2005 @@ -61,8 +61,8 @@ struct mem_block_t { struct mem_block_t *heap; int ofs, size; int align; - int free:1; - int reserved:1; + unsigned int free:1; + unsigned int reserved:1; }; typedef struct mem_block_t TMemBlock; typedef struct mem_block_t *PMemBlock; diff -puN drivers/char/drm/via_map.c~drm-via-fix-sparse-warnings drivers/char/drm/via_map.c --- 25/drivers/char/drm/via_map.c~drm-via-fix-sparse-warnings Mon Jul 11 15:16:37 2005 +++ 25-akpm/drivers/char/drm/via_map.c Mon Jul 11 15:16:37 2005 @@ -95,7 +95,8 @@ int via_map_init(DRM_IOCTL_ARGS) DRM_DEBUG("%s\n", __FUNCTION__); - DRM_COPY_FROM_USER_IOCTL(init, (drm_via_init_t *) data, sizeof(init)); + DRM_COPY_FROM_USER_IOCTL(init, (drm_via_init_t __user *) data, + sizeof(init)); switch (init.func) { case VIA_INIT_MAP: diff -puN drivers/char/drm/via_mm.c~drm-via-fix-sparse-warnings drivers/char/drm/via_mm.c --- 25/drivers/char/drm/via_mm.c~drm-via-fix-sparse-warnings Mon Jul 11 15:16:37 2005 +++ 25-akpm/drivers/char/drm/via_mm.c Mon Jul 11 15:16:37 2005 @@ -76,7 +76,8 @@ int via_agp_init(DRM_IOCTL_ARGS) { drm_via_agp_t agp; - DRM_COPY_FROM_USER_IOCTL(agp, (drm_via_agp_t *) data, sizeof(agp)); + DRM_COPY_FROM_USER_IOCTL(agp, (drm_via_agp_t __user *) data, + sizeof(agp)); AgpHeap = via_mmInit(agp.offset, agp.size); @@ -92,7 +93,7 @@ int via_fb_init(DRM_IOCTL_ARGS) { drm_via_fb_t fb; - DRM_COPY_FROM_USER_IOCTL(fb, (drm_via_fb_t *) data, sizeof(fb)); + DRM_COPY_FROM_USER_IOCTL(fb, (drm_via_fb_t __user *) data, sizeof(fb)); FBHeap = via_mmInit(fb.offset, fb.size); @@ -193,19 +194,20 @@ int via_mem_alloc(DRM_IOCTL_ARGS) { drm_via_mem_t mem; - DRM_COPY_FROM_USER_IOCTL(mem, (drm_via_mem_t *) data, sizeof(mem)); + DRM_COPY_FROM_USER_IOCTL(mem, (drm_via_mem_t __user *) data, + sizeof(mem)); switch (mem.type) { case VIDEO: if (via_fb_alloc(&mem) < 0) return -EFAULT; - DRM_COPY_TO_USER_IOCTL((drm_via_mem_t *) data, mem, + DRM_COPY_TO_USER_IOCTL((drm_via_mem_t __user *) data, mem, sizeof(mem)); return 0; case AGP: if (via_agp_alloc(&mem) < 0) return -EFAULT; - DRM_COPY_TO_USER_IOCTL((drm_via_mem_t *) data, mem, + DRM_COPY_TO_USER_IOCTL((drm_via_mem_t __user *) data, mem, sizeof(mem)); return 0; } @@ -289,7 +291,8 @@ int via_mem_free(DRM_IOCTL_ARGS) { drm_via_mem_t mem; - DRM_COPY_FROM_USER_IOCTL(mem, (drm_via_mem_t *) data, sizeof(mem)); + DRM_COPY_FROM_USER_IOCTL(mem, (drm_via_mem_t __user *) data, + sizeof(mem)); switch (mem.type) { diff -puN drivers/char/drm/via_video.c~drm-via-fix-sparse-warnings drivers/char/drm/via_video.c --- 25/drivers/char/drm/via_video.c~drm-via-fix-sparse-warnings Mon Jul 11 15:16:37 2005 +++ 25-akpm/drivers/char/drm/via_video.c Mon Jul 11 15:16:37 2005 @@ -76,7 +76,8 @@ via_decoder_futex(DRM_IOCTL_ARGS) DRM_DEBUG("%s\n", __FUNCTION__); - DRM_COPY_FROM_USER_IOCTL(fx, (drm_via_futex_t *) data, sizeof(fx)); + DRM_COPY_FROM_USER_IOCTL(fx, (drm_via_futex_t __user *) data, + sizeof(fx)); if (fx.lock > VIA_NR_XVMC_LOCKS) return -EFAULT; _