From: Andreas Mohr Un-inlining rwsem_down_failed_common() (two callsites) reduced lib/rwsem.o on my Athlon, gcc 4.1.2 from 5935 to 5480 Bytes (455 Bytes saved). I thus guess that reduced icache footprint (and better function caching) is worth more than any function call overhead. Signed-off-by: Andreas Mohr Cc: David Howells Signed-off-by: Andrew Morton --- lib/rwsem.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN lib/rwsem.c~lib-rwsemc-un-inline-rwsem_down_failed_common lib/rwsem.c --- a/lib/rwsem.c~lib-rwsemc-un-inline-rwsem_down_failed_common +++ a/lib/rwsem.c @@ -146,7 +146,7 @@ __rwsem_do_wake(struct rw_semaphore *sem /* * wait for a lock to be granted */ -static inline struct rw_semaphore * +static struct rw_semaphore * rwsem_down_failed_common(struct rw_semaphore *sem, struct rwsem_waiter *waiter, signed long adjustment) { _