aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2004-05-22 08:01:17 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-05-22 08:01:17 -0700
commitb33a7bad9bcb5c8453d7a13a99b3151ebe69563f (patch)
tree1de88006d14572e2f920f53bf173da41db3eb511 /mm
parent108e31587b9b9b4c6aaa99deb7f50c09c9f9b880 (diff)
downloadhistory-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.c5
-rw-r--r--mm/shmem.c6
-rw-r--r--mm/slab.c8
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)