All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Kill some sparse warnings
@ 2005-02-15 22:45 Peter Hagervall
  2005-02-15 22:52 ` Linus Torvalds
  2005-02-15 22:56 ` Russell King
  0 siblings, 2 replies; 4+ messages in thread
From: Peter Hagervall @ 2005-02-15 22:45 UTC (permalink / raw)
  To: linux-kernel; +Cc: torvalds

Cleaned up some address space issues in:

arch/i386(kernel/pci-dma.c
drivers/base/dmapool.c
fs/proc/base.c
include/asm-generic/pci-dma-compat.h
include/linux/dmapool.h
kernel/stop_machine.c

Signed-off-by: Peter Hagervall <hager@cs.umu.se>



===== arch/i386/kernel/pci-dma.c 1.19 vs edited =====
--- 1.19/arch/i386/kernel/pci-dma.c	2005-02-12 02:33:28 +01:00
+++ edited/arch/i386/kernel/pci-dma.c	2005-02-15 18:24:02 +01:00
@@ -14,17 +14,17 @@
 #include <asm/io.h>
 
 struct dma_coherent_mem {
-	void		*virt_base;
+	void	__iomem *virt_base;
 	u32		device_base;
 	int		size;
 	int		flags;
 	unsigned long	*bitmap;
 };
 
-void *dma_alloc_coherent(struct device *dev, size_t size,
+void __iomem *dma_alloc_coherent(struct device *dev, size_t size,
 			   dma_addr_t *dma_handle, int gfp)
 {
-	void *ret;
+	void __iomem *ret;
 	struct dma_coherent_mem *mem = dev ? dev->dma_mem : NULL;
 	int order = get_order(size);
 	/* ignore region specifiers */
@@ -36,7 +36,7 @@
 		if (page >= 0) {
 			*dma_handle = mem->device_base + (page << PAGE_SHIFT);
 			ret = mem->virt_base + (page << PAGE_SHIFT);
-			memset(ret, 0, size);
+			memset((void __force *)ret, 0, size);
 			return ret;
 		}
 		if (mem->flags & DMA_MEMORY_EXCLUSIVE)
@@ -46,17 +46,17 @@
 	if (dev == NULL || (dev->coherent_dma_mask < 0xffffffff))
 		gfp |= GFP_DMA;
 
-	ret = (void *)__get_free_pages(gfp, order);
+	ret = (void __iomem *)__get_free_pages(gfp, order);
 
 	if (ret != NULL) {
-		memset(ret, 0, size);
-		*dma_handle = virt_to_phys(ret);
+		memset((void __force *)ret, 0, size);
+		*dma_handle = virt_to_phys((volatile void __force *)ret);
 	}
 	return ret;
 }
 
 void dma_free_coherent(struct device *dev, size_t size,
-			 void *vaddr, dma_addr_t dma_handle)
+			 void __iomem *vaddr, dma_addr_t dma_handle)
 {
 	struct dma_coherent_mem *mem = dev ? dev->dma_mem : NULL;
 	int order = get_order(size);
@@ -128,7 +128,7 @@
 }
 EXPORT_SYMBOL(dma_release_declared_memory);
 
-void *dma_mark_declared_memory_occupied(struct device *dev,
+void __iomem *dma_mark_declared_memory_occupied(struct device *dev,
 					dma_addr_t device_addr, size_t size)
 {
 	struct dma_coherent_mem *mem = dev->dma_mem;
@@ -136,12 +136,12 @@
 	int pos, err;
 
 	if (!mem)
-		return ERR_PTR(-EINVAL);
+		return (void __iomem *)ERR_PTR(-EINVAL);
 
 	pos = (device_addr - mem->device_base) >> PAGE_SHIFT;
 	err = bitmap_allocate_region(mem->bitmap, pos, get_order(pages));
 	if (err != 0)
-		return ERR_PTR(err);
+		return (void __iomem *)ERR_PTR(err);
 	return mem->virt_base + (pos << PAGE_SHIFT);
 }
 EXPORT_SYMBOL(dma_mark_declared_memory_occupied);
===== drivers/base/dmapool.c 1.22 vs edited =====
--- 1.22/drivers/base/dmapool.c	2004-06-30 17:57:24 +02:00
+++ edited/drivers/base/dmapool.c	2005-02-15 23:13:07 +01:00
@@ -28,7 +28,7 @@
 
 struct dma_page {	/* cacheable header for 'allocation' bytes */
 	struct list_head	page_list;
-	void			*vaddr;
+	void __iomem		*vaddr;
 	dma_addr_t		dma;
 	unsigned		in_use;
 	unsigned long		bitmap [0];
@@ -175,7 +175,7 @@
 	if (page->vaddr) {
 		memset (page->bitmap, 0xff, mapsize);	// bit set == free
 #ifdef	CONFIG_DEBUG_SLAB
-		memset (page->vaddr, POOL_POISON_FREED, pool->allocation);
+		memset ((void __force *)page->vaddr, POOL_POISON_FREED, pool->allocation);
 #endif
 		list_add (&page->page_list, &pool->page_list);
 		page->in_use = 0;
@@ -204,7 +204,7 @@
 	dma_addr_t	dma = page->dma;
 
 #ifdef	CONFIG_DEBUG_SLAB
-	memset (page->vaddr, POOL_POISON_FREED, pool->allocation);
+	memset ((void __force *)page->vaddr, POOL_POISON_FREED, pool->allocation);
 #endif
 	dma_free_coherent (pool->dev, pool->allocation, page->vaddr, dma);
 	list_del (&page->page_list);
@@ -261,14 +261,14 @@
  * and reports its dma address through the handle.
  * If such a memory block can't be allocated, null is returned.
  */
-void *
+void __iomem *
 dma_pool_alloc (struct dma_pool *pool, int mem_flags, dma_addr_t *handle)
 {
 	unsigned long		flags;
 	struct dma_page		*page;
 	int			map, block;
 	size_t			offset;
-	void			*retval;
+	void __iomem		*retval;
 
 restart:
 	spin_lock_irqsave (&pool->lock, flags);
@@ -313,7 +313,7 @@
 	retval = offset + page->vaddr;
 	*handle = offset + page->dma;
 #ifdef	CONFIG_DEBUG_SLAB
-	memset (retval, POOL_POISON_ALLOCATED, pool->size);
+	memset ((void __force *)retval, POOL_POISON_ALLOCATED, pool->size);
 #endif
 done:
 	spin_unlock_irqrestore (&pool->lock, flags);
@@ -351,7 +351,7 @@
  * unless it is first re-allocated.
  */
 void
-dma_pool_free (struct dma_pool *pool, void *vaddr, dma_addr_t dma)
+dma_pool_free (struct dma_pool *pool, void __iomem *vaddr, dma_addr_t dma)
 {
 	struct dma_page		*page;
 	unsigned long		flags;
@@ -373,7 +373,7 @@
 	block %= BITS_PER_LONG;
 
 #ifdef	CONFIG_DEBUG_SLAB
-	if (((dma - page->dma) + (void *)page->vaddr) != vaddr) {
+	if (((dma - page->dma) + page->vaddr) != vaddr) {
 		if (pool->dev)
 			dev_err(pool->dev, "dma_pool_free %s, %p (bad vaddr)/%Lx\n",
 				pool->name, vaddr, (unsigned long long) dma);
@@ -391,7 +391,7 @@
 				pool->name, (unsigned long long)dma);
 		return;
 	}
-	memset (vaddr, POOL_POISON_FREED, pool->size);
+	memset ((void __force *)vaddr, POOL_POISON_FREED, pool->size);
 #endif
 
 	spin_lock_irqsave (&pool->lock, flags);
===== fs/proc/base.c 1.88 vs edited =====
--- 1.88/fs/proc/base.c	2005-01-31 07:33:47 +01:00
+++ edited/fs/proc/base.c	2005-02-15 16:50:53 +01:00
@@ -689,7 +689,7 @@
 	.open		= mem_open,
 };
 
-static ssize_t oom_adjust_read(struct file *file, char *buf,
+static ssize_t oom_adjust_read(struct file *file, char __user *buf,
 				size_t count, loff_t *ppos)
 {
 	struct task_struct *task = proc_task(file->f_dentry->d_inode);
@@ -709,7 +709,7 @@
 	return count;
 }
 
-static ssize_t oom_adjust_write(struct file *file, const char *buf,
+static ssize_t oom_adjust_write(struct file *file, const char __user *buf,
 				size_t count, loff_t *ppos)
 {
 	struct task_struct *task = proc_task(file->f_dentry->d_inode);
@@ -735,8 +735,8 @@
 }
 
 static struct file_operations proc_oom_adjust_operations = {
-	read:		oom_adjust_read,
-	write:		oom_adjust_write,
+	.read		= oom_adjust_read,
+	.write		= oom_adjust_write,
 };
 
 static struct inode_operations proc_mem_inode_operations = {
===== include/asm-generic/pci-dma-compat.h 1.6 vs edited =====
--- 1.6/include/asm-generic/pci-dma-compat.h	2004-03-23 19:12:38 +01:00
+++ edited/include/asm-generic/pci-dma-compat.h	2005-02-15 19:22:15 +01:00
@@ -15,7 +15,7 @@
 	return dma_supported(hwdev == NULL ? NULL : &hwdev->dev, mask);
 }
 
-static inline void *
+static inline void __iomem *
 pci_alloc_consistent(struct pci_dev *hwdev, size_t size,
 		     dma_addr_t *dma_handle)
 {
@@ -24,7 +24,7 @@
 
 static inline void
 pci_free_consistent(struct pci_dev *hwdev, size_t size,
-		    void *vaddr, dma_addr_t dma_handle)
+		    void __iomem *vaddr, dma_addr_t dma_handle)
 {
 	dma_free_coherent(hwdev == NULL ? NULL : &hwdev->dev, size, vaddr, dma_handle);
 }
===== include/linux/dmapool.h 1.1 vs edited =====
--- 1.1/include/linux/dmapool.h	2004-01-30 13:20:30 +01:00
+++ edited/include/linux/dmapool.h	2005-02-15 23:11:33 +01:00
@@ -19,9 +19,9 @@
 
 void dma_pool_destroy(struct dma_pool *pool);
 
-void *dma_pool_alloc(struct dma_pool *pool, int mem_flags, dma_addr_t *handle);
+void __iomem *dma_pool_alloc(struct dma_pool *pool, int mem_flags, dma_addr_t *handle);
 
-void dma_pool_free(struct dma_pool *pool, void *vaddr, dma_addr_t addr);
+void dma_pool_free(struct dma_pool *pool, void __iomem *vaddr, dma_addr_t addr);
 
 #endif
 
===== kernel/stop_machine.c 1.6 vs edited =====
--- 1.6/kernel/stop_machine.c	2005-01-08 06:44:05 +01:00
+++ edited/kernel/stop_machine.c	2005-02-15 22:20:08 +01:00
@@ -85,7 +85,7 @@
 static int stop_machine(void)
 {
 	int i, ret = 0;
-	struct sched_param param = { .sched_priority = MAX_RT_PRIO-1 };
+	struct sched_param __user param = { .sched_priority = MAX_RT_PRIO-1 };
 
 	/* One high-prio thread per cpu.  We'll do this one. */
 	sys_sched_setscheduler(current->pid, SCHED_FIFO, &param);



-- 
Peter Hagervall <hager@cs.umu.se>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2005-02-15 23:33 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-02-15 22:45 [PATCH] Kill some sparse warnings Peter Hagervall
2005-02-15 22:52 ` Linus Torvalds
2005-02-15 22:56 ` Russell King
2005-02-15 23:33   ` Peter Hagervall

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.