locking: Make inlining decision Kconfig based
authorThomas Gleixner <tglx@linutronix.de>
Mon, 9 Nov 2009 15:21:34 +0000 (15:21 +0000)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 13 Nov 2009 19:53:28 +0000 (20:53 +0100)
commit6beb000923882f6204ea2cfcd932e568e900803f
tree1849bb1e7493bbf5e538d74cec18c6d6f4b16ced
parent156171c71a0dc4bce12b4408bb1591f8fe32dc1a
locking: Make inlining decision Kconfig based

commit 892a7c67 (locking: Allow arch-inlined spinlocks) implements the
selection of which lock functions are inlined based on defines in
arch/.../spinlock.h: #define __always_inline__LOCK_FUNCTION

Despite of the name __always_inline__* the lock functions can be built
out of line depending on config options. Also if the arch does not set
some inline defines the generic code might set them; again depending on
config options.

This makes it unnecessary hard to figure out when and which lock
functions are inlined. Aside of that it makes it way harder and
messier for -rt to manipulate the lock functions.

Convert the inlining decision to CONFIG switches. Each lock function
is inlined depending on CONFIG_INLINE_*. The configs implement the
existing dependencies. The architecture code can select ARCH_INLINE_*
to signal that it wants the corresponding lock function inlined.
ARCH_INLINE_* is necessary as Kconfig ignores "depends on"
restrictions when a config element is selected.

No functional change.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
LKML-Reference: <20091109151428.504477141@linutronix.de>
Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Reviewed-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
arch/s390/Kconfig
arch/s390/include/asm/spinlock.h
include/linux/spinlock_api_smp.h
init/Kconfig
kernel/Kconfig.locks [new file with mode: 0644]
kernel/spinlock.c