diff options
author | Ivan Kokshaysky <ink@jurassic.park.msu.ru> | 2005-09-23 06:43:58 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-23 07:17:34 +0200 |
commit | 7243cc05bafdda4c4de77cba00cf87666bd237f7 (patch) | |
tree | a893a19e774de07face851ace998830ea1487612 /mm/slab.c | |
parent | [PATCH] alpha: fix kernel panic during SysRq-b (diff) | |
download | linux-7243cc05bafdda4c4de77cba00cf87666bd237f7.tar.xz linux-7243cc05bafdda4c4de77cba00cf87666bd237f7.zip |
[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/slab.c')
-rw-r--r-- | mm/slab.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/mm/slab.c b/mm/slab.c index 437d3388054b..cf19ff2ab5e2 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; } |