slab: make create_boot_cache() work with 32-bit sizes
authorAlexey Dobriyan <adobriyan@gmail.com>
Thu, 5 Apr 2018 23:20:33 +0000 (16:20 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 6 Apr 2018 04:36:23 +0000 (21:36 -0700)
struct kmem_cache::size has always been "int", all those
"size_t size" are fake.

Link: http://lkml.kernel.org/r/20180305200730.15812-5-adobriyan@gmail.com
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Matthew Wilcox <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/slab.h
mm/slab_common.c

index c8887965491b93f823c0794d9d45ca9623c9565f..2a6d88044a5616b8e527f44b5411b9acbd7047c5 100644 (file)
--- a/mm/slab.h
+++ b/mm/slab.h
@@ -97,8 +97,8 @@ struct kmem_cache *create_kmalloc_cache(const char *name, unsigned int size,
                        slab_flags_t flags, unsigned int useroffset,
                        unsigned int usersize);
 extern void create_boot_cache(struct kmem_cache *, const char *name,
                        slab_flags_t flags, unsigned int useroffset,
                        unsigned int usersize);
 extern void create_boot_cache(struct kmem_cache *, const char *name,
-                       size_t size, slab_flags_t flags, size_t useroffset,
-                       size_t usersize);
+                       unsigned int size, slab_flags_t flags,
+                       unsigned int useroffset, unsigned int usersize);
 
 int slab_unmergeable(struct kmem_cache *s);
 struct kmem_cache *find_mergeable(size_t size, size_t align,
 
 int slab_unmergeable(struct kmem_cache *s);
 struct kmem_cache *find_mergeable(size_t size, size_t align,
index f9afca292858a12b6bd29d385ab11eb6df8ef4f3..2a7f09ce7c84c640d92f9e05328ccb67f2d585ff 100644 (file)
@@ -917,8 +917,9 @@ bool slab_is_available(void)
 
 #ifndef CONFIG_SLOB
 /* Create a cache during boot when no slab services are available yet */
 
 #ifndef CONFIG_SLOB
 /* Create a cache during boot when no slab services are available yet */
-void __init create_boot_cache(struct kmem_cache *s, const char *name, size_t size,
-               slab_flags_t flags, size_t useroffset, size_t usersize)
+void __init create_boot_cache(struct kmem_cache *s, const char *name,
+               unsigned int size, slab_flags_t flags,
+               unsigned int useroffset, unsigned int usersize)
 {
        int err;
 
 {
        int err;
 
@@ -933,7 +934,7 @@ void __init create_boot_cache(struct kmem_cache *s, const char *name, size_t siz
        err = __kmem_cache_create(s, flags);
 
        if (err)
        err = __kmem_cache_create(s, flags);
 
        if (err)
-               panic("Creation of kmalloc slab %s size=%zu failed. Reason %d\n",
+               panic("Creation of kmalloc slab %s size=%u failed. Reason %d\n",
                                        name, size, err);
 
        s->refcount = -1;       /* Exempt from merging for now */
                                        name, size, err);
 
        s->refcount = -1;       /* Exempt from merging for now */