Skip to content

Commit

Permalink
SL*B: drop kmem cache argument from constructor
Browse files Browse the repository at this point in the history
Kmem cache passed to constructor is only needed for constructors that are
themselves multiplexeres.  Nobody uses this "feature", nor does anybody uses
passed kmem cache in non-trivial way, so pass only pointer to object.

Non-trivial places are:
	arch/powerpc/mm/init_64.c
	arch/powerpc/mm/hugetlbpage.c

This is flag day, yes.

Signed-off-by: Alexey Dobriyan <[email protected]>
Acked-by: Pekka Enberg <[email protected]>
Acked-by: Christoph Lameter <[email protected]>
Cc: Jon Tollefson <[email protected]>
Cc: Nick Piggin <[email protected]>
Cc: Matt Mackall <[email protected]>
[[email protected]: fix arch/powerpc/mm/hugetlbpage.c]
[[email protected]: fix mm/slab.c]
[[email protected]: fix ubifs]
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
Alexey Dobriyan authored and torvalds committed Jul 26, 2008
1 parent d919588 commit 51cc506
Show file tree
Hide file tree
Showing 67 changed files with 90 additions and 106 deletions.
2 changes: 1 addition & 1 deletion arch/arm/plat-s3c24xx/dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -1304,7 +1304,7 @@ struct sysdev_class dma_sysclass = {

/* kmem cache implementation */

static void s3c2410_dma_cache_ctor(struct kmem_cache *c, void *p)
static void s3c2410_dma_cache_ctor(void *p)
{
memset(p, 0, sizeof(struct s3c2410_dma_buf));
}
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/kernel/rtas_flash.c
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ static ssize_t rtas_flash_read(struct file *file, char __user *buf,
}

/* constructor for flash_block_cache */
void rtas_block_ctor(struct kmem_cache *cache, void *ptr)
void rtas_block_ctor(void *ptr)
{
memset(ptr, 0, RTAS_BLK_SIZE);
}
Expand Down
9 changes: 2 additions & 7 deletions arch/powerpc/mm/hugetlbpage.c
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ static inline pte_t *hugepte_offset(hugepd_t *hpdp, unsigned long addr,
static int __hugepte_alloc(struct mm_struct *mm, hugepd_t *hpdp,
unsigned long address, unsigned int psize)
{
pte_t *new = kmem_cache_alloc(huge_pgtable_cache(psize),
pte_t *new = kmem_cache_zalloc(huge_pgtable_cache(psize),
GFP_KERNEL|__GFP_REPEAT);

if (! new)
Expand Down Expand Up @@ -730,11 +730,6 @@ static int __init hugepage_setup_sz(char *str)
}
__setup("hugepagesz=", hugepage_setup_sz);

static void zero_ctor(struct kmem_cache *cache, void *addr)
{
memset(addr, 0, kmem_cache_size(cache));
}

static int __init hugetlbpage_init(void)
{
unsigned int psize;
Expand All @@ -756,7 +751,7 @@ static int __init hugetlbpage_init(void)
HUGEPTE_TABLE_SIZE(psize),
HUGEPTE_TABLE_SIZE(psize),
0,
zero_ctor);
NULL);
if (!huge_pgtable_cache(psize))
panic("hugetlbpage_init(): could not create %s"\
"\n", HUGEPTE_CACHE_NAME(psize));
Expand Down
24 changes: 9 additions & 15 deletions arch/powerpc/mm/init_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -136,9 +136,14 @@ static int __init setup_kcore(void)
module_init(setup_kcore);
#endif

static void zero_ctor(struct kmem_cache *cache, void *addr)
static void pgd_ctor(void *addr)
{
memset(addr, 0, kmem_cache_size(cache));
memset(addr, 0, PGD_TABLE_SIZE);
}

static void pmd_ctor(void *addr)
{
memset(addr, 0, PMD_TABLE_SIZE);
}

static const unsigned int pgtable_cache_size[2] = {
Expand All @@ -163,19 +168,8 @@ struct kmem_cache *pgtable_cache[ARRAY_SIZE(pgtable_cache_size)];

void pgtable_cache_init(void)
{
int i;

for (i = 0; i < ARRAY_SIZE(pgtable_cache_size); i++) {
int size = pgtable_cache_size[i];
const char *name = pgtable_cache_name[i];

pr_debug("Allocating page table cache %s (#%d) "
"for size: %08x...\n", name, i, size);
pgtable_cache[i] = kmem_cache_create(name,
size, size,
SLAB_PANIC,
zero_ctor);
}
pgtable_cache[0] = kmem_cache_create(pgtable_cache_name[0], PGD_TABLE_SIZE, PGD_TABLE_SIZE, SLAB_PANIC, pgd_ctor);
pgtable_cache[1] = kmem_cache_create(pgtable_cache_name[1], PMD_TABLE_SIZE, PMD_TABLE_SIZE, SLAB_PANIC, pmd_ctor);
}

#ifdef CONFIG_SPARSEMEM_VMEMMAP
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/platforms/cell/spufs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ spufs_destroy_inode(struct inode *inode)
}

static void
spufs_init_once(struct kmem_cache *cachep, void *p)
spufs_init_once(void *p)
{
struct spufs_inode_info *ei = p;

Expand Down
2 changes: 1 addition & 1 deletion arch/sh/mm/pmb.c
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ void pmb_unmap(unsigned long addr)
} while (pmbe);
}

static void pmb_cache_ctor(struct kmem_cache *cachep, void *pmb)
static void pmb_cache_ctor(void *pmb)
{
struct pmb_entry *pmbe = pmb;

Expand Down
2 changes: 1 addition & 1 deletion arch/xtensa/mm/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,7 @@ void show_mem(void)

struct kmem_cache *pgtable_cache __read_mostly;

static void pgd_ctor(struct kmem_cache *cache, void* addr)
static void pgd_ctor(void* addr)
{
pte_t* ptep = (pte_t*)addr;
int i;
Expand Down
4 changes: 2 additions & 2 deletions drivers/usb/mon/mon_text.c
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ struct mon_reader_text {

static struct dentry *mon_dir; /* Usually /sys/kernel/debug/usbmon */

static void mon_text_ctor(struct kmem_cache *, void *);
static void mon_text_ctor(void *);

struct mon_text_ptr {
int cnt, limit;
Expand Down Expand Up @@ -720,7 +720,7 @@ void mon_text_del(struct mon_bus *mbus)
/*
* Slab interface: constructor.
*/
static void mon_text_ctor(struct kmem_cache *slab, void *mem)
static void mon_text_ctor(void *mem)
{
/*
* Nothing to initialize. No, really!
Expand Down
2 changes: 1 addition & 1 deletion fs/adfs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ static void adfs_destroy_inode(struct inode *inode)
kmem_cache_free(adfs_inode_cachep, ADFS_I(inode));
}

static void init_once(struct kmem_cache *cachep, void *foo)
static void init_once(void *foo)
{
struct adfs_inode_info *ei = (struct adfs_inode_info *) foo;

Expand Down
2 changes: 1 addition & 1 deletion fs/affs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ static void affs_destroy_inode(struct inode *inode)
kmem_cache_free(affs_inode_cachep, AFFS_I(inode));
}

static void init_once(struct kmem_cache *cachep, void *foo)
static void init_once(void *foo)
{
struct affs_inode_info *ei = (struct affs_inode_info *) foo;

Expand Down
4 changes: 2 additions & 2 deletions fs/afs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@

#define AFS_FS_MAGIC 0x6B414653 /* 'kAFS' */

static void afs_i_init_once(struct kmem_cache *cachep, void *foo);
static void afs_i_init_once(void *foo);
static int afs_get_sb(struct file_system_type *fs_type,
int flags, const char *dev_name,
void *data, struct vfsmount *mnt);
Expand Down Expand Up @@ -449,7 +449,7 @@ static void afs_put_super(struct super_block *sb)
/*
* initialise an inode cache slab element prior to any use
*/
static void afs_i_init_once(struct kmem_cache *cachep, void *_vnode)
static void afs_i_init_once(void *_vnode)
{
struct afs_vnode *vnode = _vnode;

Expand Down
2 changes: 1 addition & 1 deletion fs/befs/linuxvfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ befs_destroy_inode(struct inode *inode)
kmem_cache_free(befs_inode_cachep, BEFS_I(inode));
}

static void init_once(struct kmem_cache *cachep, void *foo)
static void init_once(void *foo)
{
struct befs_inode_info *bi = (struct befs_inode_info *) foo;

Expand Down
2 changes: 1 addition & 1 deletion fs/bfs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ static void bfs_destroy_inode(struct inode *inode)
kmem_cache_free(bfs_inode_cachep, BFS_I(inode));
}

static void init_once(struct kmem_cache *cachep, void *foo)
static void init_once(void *foo)
{
struct bfs_inode_info *bi = foo;

Expand Down
2 changes: 1 addition & 1 deletion fs/block_dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,7 @@ static void bdev_destroy_inode(struct inode *inode)
kmem_cache_free(bdev_cachep, bdi);
}

static void init_once(struct kmem_cache * cachep, void *foo)
static void init_once(void *foo)
{
struct bdev_inode *ei = (struct bdev_inode *) foo;
struct block_device *bdev = &ei->bdev;
Expand Down
2 changes: 1 addition & 1 deletion fs/buffer.c
Original file line number Diff line number Diff line change
Expand Up @@ -3272,7 +3272,7 @@ int bh_submit_read(struct buffer_head *bh)
EXPORT_SYMBOL(bh_submit_read);

static void
init_buffer_head(struct kmem_cache *cachep, void *data)
init_buffer_head(void *data)
{
struct buffer_head *bh = data;

Expand Down
2 changes: 1 addition & 1 deletion fs/cifs/cifsfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -766,7 +766,7 @@ const struct file_operations cifs_dir_ops = {
};

static void
cifs_init_once(struct kmem_cache *cachep, void *inode)
cifs_init_once(void *inode)
{
struct cifsInodeInfo *cifsi = inode;

Expand Down
2 changes: 1 addition & 1 deletion fs/coda/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ static void coda_destroy_inode(struct inode *inode)
kmem_cache_free(coda_inode_cachep, ITOC(inode));
}

static void init_once(struct kmem_cache * cachep, void *foo)
static void init_once(void *foo)
{
struct coda_inode_info *ei = (struct coda_inode_info *) foo;

Expand Down
4 changes: 2 additions & 2 deletions fs/ecryptfs/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -578,7 +578,7 @@ static struct file_system_type ecryptfs_fs_type = {
* Initializes the ecryptfs_inode_info_cache when it is created
*/
static void
inode_info_init_once(struct kmem_cache *cachep, void *vptr)
inode_info_init_once(void *vptr)
{
struct ecryptfs_inode_info *ei = (struct ecryptfs_inode_info *)vptr;

Expand All @@ -589,7 +589,7 @@ static struct ecryptfs_cache_info {
struct kmem_cache **cache;
const char *name;
size_t size;
void (*ctor)(struct kmem_cache *cache, void *obj);
void (*ctor)(void *obj);
} ecryptfs_cache_infos[] = {
{
.cache = &ecryptfs_auth_tok_list_item_cache,
Expand Down
2 changes: 1 addition & 1 deletion fs/efs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ static void efs_destroy_inode(struct inode *inode)
kmem_cache_free(efs_inode_cachep, INODE_INFO(inode));
}

static void init_once(struct kmem_cache *cachep, void *foo)
static void init_once(void *foo)
{
struct efs_inode_info *ei = (struct efs_inode_info *) foo;

Expand Down
2 changes: 1 addition & 1 deletion fs/ext2/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ static void ext2_destroy_inode(struct inode *inode)
kmem_cache_free(ext2_inode_cachep, EXT2_I(inode));
}

static void init_once(struct kmem_cache * cachep, void *foo)
static void init_once(void *foo)
{
struct ext2_inode_info *ei = (struct ext2_inode_info *) foo;

Expand Down
2 changes: 1 addition & 1 deletion fs/ext3/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -472,7 +472,7 @@ static void ext3_destroy_inode(struct inode *inode)
kmem_cache_free(ext3_inode_cachep, EXT3_I(inode));
}

static void init_once(struct kmem_cache * cachep, void *foo)
static void init_once(void *foo)
{
struct ext3_inode_info *ei = (struct ext3_inode_info *) foo;

Expand Down
2 changes: 1 addition & 1 deletion fs/ext4/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -595,7 +595,7 @@ static void ext4_destroy_inode(struct inode *inode)
kmem_cache_free(ext4_inode_cachep, EXT4_I(inode));
}

static void init_once(struct kmem_cache *cachep, void *foo)
static void init_once(void *foo)
{
struct ext4_inode_info *ei = (struct ext4_inode_info *) foo;

Expand Down
2 changes: 1 addition & 1 deletion fs/fat/cache.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ static inline int fat_max_cache(struct inode *inode)

static struct kmem_cache *fat_cache_cachep;

static void init_once(struct kmem_cache *cachep, void *foo)
static void init_once(void *foo)
{
struct fat_cache *cache = (struct fat_cache *)foo;

Expand Down
2 changes: 1 addition & 1 deletion fs/fat/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -498,7 +498,7 @@ static void fat_destroy_inode(struct inode *inode)
kmem_cache_free(fat_inode_cachep, MSDOS_I(inode));
}

static void init_once(struct kmem_cache *cachep, void *foo)
static void init_once(void *foo)
{
struct msdos_inode_info *ei = (struct msdos_inode_info *)foo;

Expand Down
2 changes: 1 addition & 1 deletion fs/fuse/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -956,7 +956,7 @@ static inline void unregister_fuseblk(void)
}
#endif

static void fuse_inode_init_once(struct kmem_cache *cachep, void *foo)
static void fuse_inode_init_once(void *foo)
{
struct inode * inode = foo;

Expand Down
4 changes: 2 additions & 2 deletions fs/gfs2/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
#include "util.h"
#include "glock.h"

static void gfs2_init_inode_once(struct kmem_cache *cachep, void *foo)
static void gfs2_init_inode_once(void *foo)
{
struct gfs2_inode *ip = foo;

Expand All @@ -33,7 +33,7 @@ static void gfs2_init_inode_once(struct kmem_cache *cachep, void *foo)
ip->i_alloc = NULL;
}

static void gfs2_init_glock_once(struct kmem_cache *cachep, void *foo)
static void gfs2_init_glock_once(void *foo)
{
struct gfs2_glock *gl = foo;

Expand Down
2 changes: 1 addition & 1 deletion fs/hfs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,7 @@ static struct file_system_type hfs_fs_type = {
.fs_flags = FS_REQUIRES_DEV,
};

static void hfs_init_once(struct kmem_cache *cachep, void *p)
static void hfs_init_once(void *p)
{
struct hfs_inode_info *i = p;

Expand Down
2 changes: 1 addition & 1 deletion fs/hfsplus/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -485,7 +485,7 @@ static struct file_system_type hfsplus_fs_type = {
.fs_flags = FS_REQUIRES_DEV,
};

static void hfsplus_init_once(struct kmem_cache *cachep, void *p)
static void hfsplus_init_once(void *p)
{
struct hfsplus_inode_info *i = p;

Expand Down
2 changes: 1 addition & 1 deletion fs/hpfs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ static void hpfs_destroy_inode(struct inode *inode)
kmem_cache_free(hpfs_inode_cachep, hpfs_i(inode));
}

static void init_once(struct kmem_cache *cachep, void *foo)
static void init_once(void *foo)
{
struct hpfs_inode_info *ei = (struct hpfs_inode_info *) foo;

Expand Down
2 changes: 1 addition & 1 deletion fs/hugetlbfs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -705,7 +705,7 @@ static const struct address_space_operations hugetlbfs_aops = {
};


static void init_once(struct kmem_cache *cachep, void *foo)
static void init_once(void *foo)
{
struct hugetlbfs_inode_info *ei = (struct hugetlbfs_inode_info *)foo;

Expand Down
2 changes: 1 addition & 1 deletion fs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ void inode_init_once(struct inode *inode)

EXPORT_SYMBOL(inode_init_once);

static void init_once(struct kmem_cache * cachep, void *foo)
static void init_once(void *foo)
{
struct inode * inode = (struct inode *) foo;

Expand Down
2 changes: 1 addition & 1 deletion fs/isofs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ static void isofs_destroy_inode(struct inode *inode)
kmem_cache_free(isofs_inode_cachep, ISOFS_I(inode));
}

static void init_once(struct kmem_cache *cachep, void *foo)
static void init_once(void *foo)
{
struct iso_inode_info *ei = foo;

Expand Down
2 changes: 1 addition & 1 deletion fs/jffs2/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ static void jffs2_destroy_inode(struct inode *inode)
kmem_cache_free(jffs2_inode_cachep, JFFS2_INODE_INFO(inode));
}

static void jffs2_i_init_once(struct kmem_cache *cachep, void *foo)
static void jffs2_i_init_once(void *foo)
{
struct jffs2_inode_info *f = foo;

Expand Down
2 changes: 1 addition & 1 deletion fs/jfs/jfs_metapage.c
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ static inline void remove_metapage(struct page *page, struct metapage *mp)

#endif

static void init_once(struct kmem_cache *cachep, void *foo)
static void init_once(void *foo)
{
struct metapage *mp = (struct metapage *)foo;

Expand Down
Loading

0 comments on commit 51cc506

Please sign in to comment.