mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-19 13:11:14 +00:00
slub: fix handling of oversized slabs
I'm getting zillions of undefined references to __kmalloc_size_too_large on alpha. For some reason alpha is building out-of-line copies of kmalloc_slab() into lots of compilation units. It turns out that gcc just isn't smart enough to work out that __builtin_contant_p(size)==true implies that __builtin_contant_p(index)==true. So let's give it a bit of help. Cc: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
0b44f7a5b5
commit
ade3aff25f
1 changed files with 6 additions and 1 deletions
|
@ -145,7 +145,12 @@ static inline struct kmem_cache *kmalloc_slab(size_t size)
|
||||||
if (index == 0)
|
if (index == 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (index < 0) {
|
/*
|
||||||
|
* This function only gets expanded if __builtin_constant_p(size), so
|
||||||
|
* testing it here shouldn't be needed. But some versions of gcc need
|
||||||
|
* help.
|
||||||
|
*/
|
||||||
|
if (__builtin_constant_p(size) && index < 0) {
|
||||||
/*
|
/*
|
||||||
* Generate a link failure. Would be great if we could
|
* Generate a link failure. Would be great if we could
|
||||||
* do something to stop the compile here.
|
* do something to stop the compile here.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue