Index: linux-2.6.21-rc2/mm/slub.c =================================================================== --- linux-2.6.21-rc2.orig/mm/slub.c 2007-03-05 20:08:05.000000000 -0800 +++ linux-2.6.21-rc2/mm/slub.c 2007-03-05 20:09:06.000000000 -0800 @@ -1362,7 +1362,7 @@ * Single object slabs are passed through to the page allocator * and therefore the checks we can do are limited. */ - if (size * 2 >= (PAGE_SIZE << calculate_order(tentative_size))) + if (size * 2 > (PAGE_SIZE << calculate_order(tentative_size))) flags &= ~(SLAB_RED_ZONE | SLAB_DEBUG_FREE | \ SLAB_STORE_USER | SLAB_POISON); @@ -1906,14 +1906,14 @@ } s = kmalloc(kmem_size, GFP_KERNEL); - if (s && kmem_cache_open(s, GFP_KERNEL, kstrdup(name, GFP_KERNEL), + if (s && kmem_cache_open(s, GFP_KERNEL, name, size, align, flags, ctor, dtor)) { list_add(&s->list, &slab_caches); } else kfree(s); out: up_write(&slub_lock); - return NULL; + return s; } EXPORT_SYMBOL(kmem_cache_create); Index: linux-2.6.21-rc2/fs/proc/proc_misc.c =================================================================== --- linux-2.6.21-rc2.orig/fs/proc/proc_misc.c 2007-03-05 18:21:15.000000000 -0800 +++ linux-2.6.21-rc2/fs/proc/proc_misc.c 2007-03-05 20:09:06.000000000 -0800 @@ -419,8 +419,8 @@ { return seq_open(file, &slabinfo_op); } -static const struct file_operations proc_slubinfo_operations = { - .open = slubinfo_open, +static const struct file_operations proc_slabinfo_operations = { + .open = slabinfo_open, .read = seq_read, .write = slabinfo_write, .llseek = seq_lseek,