summaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorIvan Kokshaysky <ink@jurassic.park.msu.ru>2005-09-22 21:43:58 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2005-09-22 22:17:34 -0700
commit7243cc05bafdda4c4de77cba00cf87666bd237f7 (patch)
treea893a19e774de07face851ace998830ea1487612 /mm
parent4b3c86a7452df8608c32a1c1f19c0cc0723c145f (diff)
[PATCH] slab: alpha inlining fix
It is essential that index_of() be inlined. But alpha undoes the gcc inlining hackery and index_of() ends up out-of-line. So fiddle with things to make that function inline again. Cc: Richard Henderson <rth@twiddle.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/slab.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/mm/slab.c b/mm/slab.c
index 437d3388054..cf19ff2ab5e 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -308,12 +308,12 @@ struct kmem_list3 __initdata initkmem_list3[NUM_INIT_LISTS];
#define SIZE_L3 (1 + MAX_NUMNODES)
/*
- * This function may be completely optimized away if
+ * This function must be completely optimized away if
* a constant is passed to it. Mostly the same as
* what is in linux/slab.h except it returns an
* index.
*/
-static inline int index_of(const size_t size)
+static __always_inline int index_of(const size_t size)
{
if (__builtin_constant_p(size)) {
int i = 0;
@@ -329,7 +329,8 @@ static inline int index_of(const size_t size)
extern void __bad_size(void);
__bad_size();
}
- }
+ } else
+ BUG();
return 0;
}