forked from Minki/linux
[PATCH] __kmalloc: Generate BUG if size requested is too large.
I had an issue on ia64 where I got a bug in kernel/workqueue because kzalloc returned a NULL pointer due to the task structure getting too big for the slab allocator. Usually these cases are caught by the kmalloc macro in include/linux/slab.h. Compilation will fail if a too big value is passed to kmalloc. However, kzalloc uses __kmalloc which has no check for that. This patch makes __kmalloc bug if a too large entity is requested. Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
0cdc82ee1a
commit
eafb42707b
@ -2907,8 +2907,7 @@ void *__kmalloc(size_t size, unsigned int __nocast flags)
|
||||
* functions.
|
||||
*/
|
||||
cachep = __find_general_cachep(size, flags);
|
||||
if (unlikely(cachep == NULL))
|
||||
return NULL;
|
||||
BUG_ON(!cachep); /* Allocation size too large for kmalloc */
|
||||
return __cache_alloc(cachep, flags);
|
||||
}
|
||||
EXPORT_SYMBOL(__kmalloc);
|
||||
|
Loading…
Reference in New Issue
Block a user