• Thomas Gleixner's avatar
    locking: Make inlining decision Kconfig based · 6beb0009
    Thomas Gleixner authored
    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: default avatarThomas Gleixner <tglx@linutronix.de>
    LKML-Reference: <20091109151428.504477141@linutronix.de>
    Acked-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
    Reviewed-by: default avatarIngo Molnar <mingo@elte.hu>
    Acked-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    6beb0009
spinlock.h 4.86 KB