diff options
author | Andrew Morton <akpm@osdl.org> | 2004-05-22 08:01:17 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-05-22 08:01:17 -0700 |
commit | b33a7bad9bcb5c8453d7a13a99b3151ebe69563f (patch) | |
tree | 1de88006d14572e2f920f53bf173da41db3eb511 /mm | |
parent | 108e31587b9b9b4c6aaa99deb7f50c09c9f9b880 (diff) | |
download | history-b33a7bad9bcb5c8453d7a13a99b3151ebe69563f.tar.gz |
[PATCH] slab: consolidate panic code
Many places do:
if (kmem_cache_create(...) == NULL)
panic(...);
We can consolidate all that by passing another flag to kmem_cache_create()
which says "panic if it doesn't work".
Diffstat (limited to 'mm')
-rw-r--r-- | mm/rmap.c | 5 | ||||
-rw-r--r-- | mm/shmem.c | 6 | ||||
-rw-r--r-- | mm/slab.c | 8 |
3 files changed, 9 insertions, 10 deletions
diff --git a/mm/rmap.c b/mm/rmap.c index d200e834cb4ad1..2a4a6aa3e97356 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -977,10 +977,7 @@ void __init pte_chain_init(void) pte_chain_cache = kmem_cache_create( "pte_chain", sizeof(struct pte_chain), sizeof(struct pte_chain), - 0, + SLAB_PANIC, pte_chain_ctor, NULL); - - if (!pte_chain_cache) - panic("failed to create pte_chain cache!\n"); } diff --git a/mm/shmem.c b/mm/shmem.c index f1438c77e87a81..f04bbfd50c0ab8 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -1808,9 +1808,9 @@ static void init_once(void *foo, kmem_cache_t *cachep, unsigned long flags) static int init_inodecache(void) { shmem_inode_cachep = kmem_cache_create("shmem_inode_cache", - sizeof(struct shmem_inode_info), - 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, - init_once, NULL); + sizeof(struct shmem_inode_info), + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, + init_once, NULL); if (shmem_inode_cachep == NULL) return -ENOMEM; return 0; diff --git a/mm/slab.c b/mm/slab.c index c123b267ffeb42..3d6ccd50a96bfe 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -135,11 +135,11 @@ SLAB_POISON | SLAB_HWCACHE_ALIGN | \ SLAB_NO_REAP | SLAB_CACHE_DMA | \ SLAB_MUST_HWCACHE_ALIGN | SLAB_STORE_USER | \ - SLAB_RECLAIM_ACCOUNT ) + SLAB_RECLAIM_ACCOUNT | SLAB_PANIC) #else # define CREATE_MASK (SLAB_HWCACHE_ALIGN | SLAB_NO_REAP | \ SLAB_CACHE_DMA | SLAB_MUST_HWCACHE_ALIGN | \ - SLAB_RECLAIM_ACCOUNT) + SLAB_RECLAIM_ACCOUNT | SLAB_PANIC) #endif /* @@ -1402,9 +1402,11 @@ next: up(&cache_chain_sem); unlock_cpu_hotplug(); opps: + if (!cachep && (flags & SLAB_PANIC)) + panic("kmem_cache_create(): failed to create slab `%s'\n", + name); return cachep; } - EXPORT_SYMBOL(kmem_cache_create); static inline void check_irq_off(void) |