Slab API: remove useless ctor parameter and reorder parameters
Slab constructors currently have a flags parameter that is never used. And the order of the arguments is opposite to other slab functions. The object pointer is placed before the kmem_cache pointer. Convert ctor(void *object, struct kmem_cache *s, unsigned long flags) to ctor(struct kmem_cache *s, void *object) throughout the kernel [akpm@linux-foundation.org: coupla fixes] Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
b811c202a0
commit
4ba9b9d0ba
11
mm/slab.c
11
mm/slab.c
@@ -408,7 +408,7 @@ struct kmem_cache {
|
||||
unsigned int dflags; /* dynamic flags */
|
||||
|
||||
/* constructor func */
|
||||
void (*ctor) (void *, struct kmem_cache *, unsigned long);
|
||||
void (*ctor)(struct kmem_cache *, void *);
|
||||
|
||||
/* 5) cache creation/removal */
|
||||
const char *name;
|
||||
@@ -2129,7 +2129,7 @@ static int __init_refok setup_cpu_cache(struct kmem_cache *cachep)
|
||||
struct kmem_cache *
|
||||
kmem_cache_create (const char *name, size_t size, size_t align,
|
||||
unsigned long flags,
|
||||
void (*ctor)(void*, struct kmem_cache *, unsigned long))
|
||||
void (*ctor)(struct kmem_cache *, void *))
|
||||
{
|
||||
size_t left_over, slab_size, ralign;
|
||||
struct kmem_cache *cachep = NULL, *pc;
|
||||
@@ -2636,8 +2636,7 @@ static void cache_init_objs(struct kmem_cache *cachep,
|
||||
* They must also be threaded.
|
||||
*/
|
||||
if (cachep->ctor && !(cachep->flags & SLAB_POISON))
|
||||
cachep->ctor(objp + obj_offset(cachep), cachep,
|
||||
0);
|
||||
cachep->ctor(cachep, objp + obj_offset(cachep));
|
||||
|
||||
if (cachep->flags & SLAB_RED_ZONE) {
|
||||
if (*dbg_redzone2(cachep, objp) != RED_INACTIVE)
|
||||
@@ -2653,7 +2652,7 @@ static void cache_init_objs(struct kmem_cache *cachep,
|
||||
cachep->buffer_size / PAGE_SIZE, 0);
|
||||
#else
|
||||
if (cachep->ctor)
|
||||
cachep->ctor(objp, cachep, 0);
|
||||
cachep->ctor(cachep, objp);
|
||||
#endif
|
||||
slab_bufctl(slabp)[i] = i + 1;
|
||||
}
|
||||
@@ -3078,7 +3077,7 @@ static void *cache_alloc_debugcheck_after(struct kmem_cache *cachep,
|
||||
#endif
|
||||
objp += obj_offset(cachep);
|
||||
if (cachep->ctor && cachep->flags & SLAB_POISON)
|
||||
cachep->ctor(objp, cachep, 0);
|
||||
cachep->ctor(cachep, objp);
|
||||
#if ARCH_SLAB_MINALIGN
|
||||
if ((u32)objp & (ARCH_SLAB_MINALIGN-1)) {
|
||||
printk(KERN_ERR "0x%p: not aligned to ARCH_SLAB_MINALIGN=%d\n",
|
||||
|
Reference in New Issue
Block a user