[PATCH] staging/dt3155: sparse cleanup of allocator code

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: H Hartley Sweeten
Date: Tuesday, March 2, 2010 - 2:41 pm

This fixes up the worst of the sparse issues in the allocator code.

1) include allocator.h for exported function prototypes
2) fix the return type for allocator_free_dma
3) fix the 2nd parameter type for allocator_allocate_dma
4) make all the local variables static
5) change the "remapped" variable in allocator_init to a void __iomem *

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Greg Kroah-Hartman <greg@kroah.com>
Cc: Scott Smedley <ss@aao.gov.au>

---

I'm not sure how to handle the strcpy/strcmp using "remapped". It is
setup with ioremap and released with iounmap so it should be a
void __iomem *. But, using that in strcpy/strcmp results in a "cast
removes address space of expression" sparse warning.

diff --git a/drivers/staging/dt3155/allocator.c b/drivers/staging/dt3155/allocator.c
index c74234c..53c5069 100644
--- a/drivers/staging/dt3155/allocator.c
+++ b/drivers/staging/dt3155/allocator.c
@@ -58,6 +58,8 @@
 
 #include <asm/page.h>
 
+#include "allocator.h"
+
 /*#define ALL_DEBUG*/
 #define ALL_MSG "allocator: "
 
@@ -83,9 +85,9 @@
 /*#define PDEBUGG(fmt, args...) printk( KERN_DEBUG ALL_MSG fmt, ## args)*/
 
 
-int allocator_himem = 1; /* 0 = probe, pos. = megs, neg. = disable   */
-int allocator_step = 1;  /* This is the step size in MB              */
-int allocator_probe = 1; /* This is a flag -- 1=probe, 0=don't probe */
+static int allocator_himem = 1; /* 0 = probe, pos. = megs, neg. = disable   */
+static int allocator_step = 1;  /* This is the step size in MB              */
+static int allocator_probe = 1; /* This is a flag -- 1=probe, 0=don't probe */
 
 static unsigned long allocator_buffer;		/* physical address */
 static unsigned long allocator_buffer_size;	/* kilobytes */
@@ -101,7 +103,7 @@ struct allocator_struct {
 	struct allocator_struct *next;
 };
 
-struct allocator_struct *allocator_list;
+static struct allocator_struct *allocator_list;
 
 
 #ifdef ALL_DEBUG
@@ -124,7 +126,7 @@ static int dump_list(void)
  * be used straight ahead for DMA, but needs remapping for program use).
  */
 
-unsigned long allocator_allocate_dma(unsigned long kilobytes, int prio)
+unsigned long allocator_allocate_dma(unsigned long kilobytes, gfp_t flags)
 {
 	struct allocator_struct *ptr = allocator_list, *newptr;
 	unsigned long bytes = kilobytes << 10;
@@ -147,7 +149,7 @@ unsigned long allocator_allocate_dma(unsigned long kilobytes, int prio)
 		PDEBUG("alloc failed\n");
 		return 0; /* end of list */
 	}
-	newptr = kmalloc(sizeof(struct allocator_struct), prio);
+	newptr = kmalloc(sizeof(struct allocator_struct), flags);
 	if (!newptr)
 		return 0;
 
@@ -198,7 +200,7 @@ int allocator_free_dma(unsigned long address)
 int allocator_init(u32 *allocator_max)
 {
 	/* check how much free memory is there */
-	void *remapped;
+	void __iomem *remapped;
 	unsigned long max;
 	unsigned long trial_size = allocator_himem<<20;
 	unsigned long last_trial = 0;
@@ -227,7 +229,7 @@ int allocator_init(u32 *allocator_max)
 			if (strcmp((char *)(remapped)+i, test_string))
 				break;
 			}
-		iounmap((void *)remapped);
+		iounmap(remapped);
 		schedule();
 		last_trial = trial_size;
 		if (i == trial_size)
diff --git a/drivers/staging/dt3155/allocator.h b/drivers/staging/dt3155/allocator.h
index bdf3268..425b70f 100644
--- a/drivers/staging/dt3155/allocator.h
+++ b/drivers/staging/dt3155/allocator.h
@@ -22,7 +22,7 @@
  *
  */
 
-void allocator_free_dma(unsigned long address);
-unsigned long allocator_allocate_dma(unsigned long kilobytes, int priority);
+int allocator_free_dma(unsigned long address);
+unsigned long allocator_allocate_dma(unsigned long kilobytes, gfp_t flags);
 int allocator_init(u32 *);
 void allocator_cleanup(void);
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] staging/dt3155: sparse cleanup of allocator code, H Hartley Sweeten, (Tue Mar 2, 2:41 pm)