From: Alexey Dobriyan <adobriyan@gmail.com>

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 include/linux/gfp.h    |    4 ++--
 include/linux/slab.h   |    4 ++--
 include/linux/string.h |    2 +-
 mm/mempool.c           |    2 +-
 mm/slab.c              |   12 +++++++-----
 5 files changed, 13 insertions(+), 11 deletions(-)

diff -puN include/linux/gfp.h~propagate-__nocast-annotations include/linux/gfp.h
--- 25/include/linux/gfp.h~propagate-__nocast-annotations	Tue Jun 28 16:45:49 2005
+++ 25-akpm/include/linux/gfp.h	Tue Jun 28 16:45:49 2005
@@ -12,8 +12,8 @@ struct vm_area_struct;
  * GFP bitmasks..
  */
 /* Zone modifiers in GFP_ZONEMASK (see linux/mmzone.h - low two bits) */
-#define __GFP_DMA	0x01
-#define __GFP_HIGHMEM	0x02
+#define __GFP_DMA	0x01u
+#define __GFP_HIGHMEM	0x02u
 
 /*
  * Action modifiers - doesn't change the zoning
diff -puN include/linux/slab.h~propagate-__nocast-annotations include/linux/slab.h
--- 25/include/linux/slab.h~propagate-__nocast-annotations	Tue Jun 28 16:45:49 2005
+++ 25-akpm/include/linux/slab.h	Tue Jun 28 16:46:54 2005
@@ -65,7 +65,7 @@ extern void *kmem_cache_alloc(kmem_cache
 extern void kmem_cache_free(kmem_cache_t *, void *);
 extern unsigned int kmem_cache_size(kmem_cache_t *);
 extern const char *kmem_cache_name(kmem_cache_t *);
-extern kmem_cache_t *kmem_find_general_cachep(size_t size, int gfpflags);
+extern kmem_cache_t *kmem_find_general_cachep(size_t size, unsigned int __nocast gfpflags);
 
 /* Size description struct for general caches. */
 struct cache_sizes {
@@ -105,7 +105,7 @@ extern unsigned int ksize(const void *);
 
 #ifdef CONFIG_NUMA
 extern void *kmem_cache_alloc_node(kmem_cache_t *, int flags, int node);
-extern void *kmalloc_node(size_t size, int flags, int node);
+extern void *kmalloc_node(size_t size, unsigned int __nocast flags, int node);
 #else
 /*
  * The definitions are macros here to allow the use of an undefined variable
diff -puN include/linux/string.h~propagate-__nocast-annotations include/linux/string.h
--- 25/include/linux/string.h~propagate-__nocast-annotations	Tue Jun 28 16:45:49 2005
+++ 25-akpm/include/linux/string.h	Tue Jun 28 16:45:49 2005
@@ -88,7 +88,7 @@ extern int memcmp(const void *,const voi
 extern void * memchr(const void *,int,__kernel_size_t);
 #endif
 
-extern char *kstrdup(const char *s, int gfp);
+extern char *kstrdup(const char *s, unsigned int __nocast gfp);
 
 #ifdef __cplusplus
 }
diff -puN mm/mempool.c~propagate-__nocast-annotations mm/mempool.c
--- 25/mm/mempool.c~propagate-__nocast-annotations	Tue Jun 28 16:45:49 2005
+++ 25-akpm/mm/mempool.c	Tue Jun 28 16:45:49 2005
@@ -205,7 +205,7 @@ void * mempool_alloc(mempool_t *pool, un
 	void *element;
 	unsigned long flags;
 	wait_queue_t wait;
-	int gfp_temp;
+	unsigned int gfp_temp;
 
 	might_sleep_if(gfp_mask & __GFP_WAIT);
 
diff -puN mm/slab.c~propagate-__nocast-annotations mm/slab.c
--- 25/mm/slab.c~propagate-__nocast-annotations	Tue Jun 28 16:45:49 2005
+++ 25-akpm/mm/slab.c	Tue Jun 28 16:45:49 2005
@@ -584,7 +584,8 @@ static inline struct array_cache *ac_dat
 	return cachep->array[smp_processor_id()];
 }
 
-static inline kmem_cache_t *__find_general_cachep(size_t size, int gfpflags)
+static inline kmem_cache_t *__find_general_cachep(size_t size,
+						unsigned int __nocast gfpflags)
 {
 	struct cache_sizes *csizep = malloc_sizes;
 
@@ -608,7 +609,8 @@ static inline kmem_cache_t *__find_gener
 	return csizep->cs_cachep;
 }
 
-kmem_cache_t *kmem_find_general_cachep(size_t size, int gfpflags)
+kmem_cache_t *kmem_find_general_cachep(size_t size,
+		unsigned int __nocast gfpflags)
 {
 	return __find_general_cachep(size, gfpflags);
 }
@@ -2100,7 +2102,7 @@ cache_alloc_debugcheck_before(kmem_cache
 #if DEBUG
 static void *
 cache_alloc_debugcheck_after(kmem_cache_t *cachep,
-			unsigned long flags, void *objp, void *caller)
+			unsigned int __nocast flags, void *objp, void *caller)
 {
 	if (!objp)	
 		return objp;
@@ -2439,7 +2441,7 @@ got_slabp:
 }
 EXPORT_SYMBOL(kmem_cache_alloc_node);
 
-void *kmalloc_node(size_t size, int flags, int node)
+void *kmalloc_node(size_t size, unsigned int __nocast flags, int node)
 {
 	kmem_cache_t *cachep;
 
@@ -3091,7 +3093,7 @@ unsigned int ksize(const void *objp)
  * @s: the string to duplicate
  * @gfp: the GFP mask used in the kmalloc() call when allocating memory
  */
-char *kstrdup(const char *s, int gfp)
+char *kstrdup(const char *s, unsigned int __nocast gfp)
 {
 	size_t len;
 	char *buf;
_