All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Hagervall <hager@cs.umu.se>
To: linux-kernel@vger.kernel.org
Cc: torvalds@osdl.org
Subject: [PATCH] Kill some sparse warnings
Date: Tue, 15 Feb 2005 23:45:53 +0100	[thread overview]
Message-ID: <20050215224553.GA24630@peppar.cs.umu.se> (raw)

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>

             reply	other threads:[~2005-02-15 22:48 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-02-15 22:45 Peter Hagervall [this message]
2005-02-15 22:52 ` [PATCH] Kill some sparse warnings Linus Torvalds
2005-02-15 22:56 ` Russell King
2005-02-15 23:33   ` Peter Hagervall

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050215224553.GA24630@peppar.cs.umu.se \
    --to=hager@cs.umu.se \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.