diff options
author | Andrew Morton <akpm@osdl.org> | 2005-09-23 13:24:10 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-23 13:35:37 -0700 |
commit | dbdb90450059e17e8e005ebd3ce0a1fd6008a0c8 (patch) | |
tree | 0dc0220667566698e5c602bcd408d4255c86037a /mm/slab.c | |
parent | 86513e726b494796175b6c4fdd705797f01b0ca2 (diff) | |
download | lwn-dbdb90450059e17e8e005ebd3ce0a1fd6008a0c8.tar.gz lwn-dbdb90450059e17e8e005ebd3ce0a1fd6008a0c8.zip |
[PATCH] revert oversized kmalloc check
As davem points out, this wasn't such a great idea. There may be some code
which does:
size = 1024*1024;
while (kmalloc(size, ...) == 0)
size /= 2;
which will now explode.
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Christoph Lameter <christoph@lameter.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm/slab.c')
-rw-r--r-- | mm/slab.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/mm/slab.c b/mm/slab.c index ad113c431e39..c9adfce00405 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -2907,7 +2907,8 @@ void *__kmalloc(size_t size, unsigned int __nocast flags) * functions. */ cachep = __find_general_cachep(size, flags); - BUG_ON(!cachep); /* Allocation size too large for kmalloc */ + if (unlikely(cachep == NULL)) + return NULL; return __cache_alloc(cachep, flags); } EXPORT_SYMBOL(__kmalloc); |