slob: fix bug - when slob allocates "struct kmem_cache", it does not force alignment.
Yi Li [Fri, 25 Apr 2008 16:49:21 +0000 (19:49 +0300)]
This may trigger misaligned memory access exception.

Acked-by: Matt Mackall <mpm@selenic.com>
Signed-off-by: Yi Li <yi.li@analog.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>

mm/slob.c

index e2c3c0e..6038cba 100644 (file)
--- a/mm/slob.c
+++ b/mm/slob.c
@@ -533,7 +533,8 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size,
 {
        struct kmem_cache *c;
 
-       c = slob_alloc(sizeof(struct kmem_cache), flags, 0, -1);
+       c = slob_alloc(sizeof(struct kmem_cache),
+               flags, ARCH_KMALLOC_MINALIGN, -1);
 
        if (c) {
                c->name = name;