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, ¶m);
--
Peter Hagervall <hager@cs.umu.se>
next 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.