#
# The ARCH_INLINE foo is necessary because select ignores "depends on"
#
config [31mCONFIG_ARCH_INLINE_SPIN_TRYLOCK[0m
bool
config [31mCONFIG_ARCH_INLINE_SPIN_TRYLOCK_BH[0m
bool
config [31mCONFIG_ARCH_INLINE_SPIN_LOCK[0m
bool
config [31mCONFIG_ARCH_INLINE_SPIN_LOCK_BH[0m
bool
config [31mCONFIG_ARCH_INLINE_SPIN_LOCK_IRQ[0m
bool
config [31mCONFIG_ARCH_INLINE_SPIN_LOCK_IRQSAVE[0m
bool
config [31mCONFIG_ARCH_INLINE_SPIN_UNLOCK[0m
bool
config [31mCONFIG_ARCH_INLINE_SPIN_UNLOCK_BH[0m
bool
config [31mCONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQ[0m
bool
config [31mCONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE[0m
bool
config [31mCONFIG_ARCH_INLINE_READ_TRYLOCK[0m
bool
config [31mCONFIG_ARCH_INLINE_READ_LOCK[0m
bool
config [31mCONFIG_ARCH_INLINE_READ_LOCK_BH[0m
bool
config [31mCONFIG_ARCH_INLINE_READ_LOCK_IRQ[0m
bool
config [31mCONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE[0m
bool
config [31mCONFIG_ARCH_INLINE_READ_UNLOCK[0m
bool
config [31mCONFIG_ARCH_INLINE_READ_UNLOCK_BH[0m
bool
config [31mCONFIG_ARCH_INLINE_READ_UNLOCK_IRQ[0m
bool
config [31mCONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE[0m
bool
config [31mCONFIG_ARCH_INLINE_WRITE_TRYLOCK[0m
bool
config [31mCONFIG_ARCH_INLINE_WRITE_LOCK[0m
bool
config [31mCONFIG_ARCH_INLINE_WRITE_LOCK_BH[0m
bool
config [31mCONFIG_ARCH_INLINE_WRITE_LOCK_IRQ[0m
bool
config [31mCONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE[0m
bool
config [31mCONFIG_ARCH_INLINE_WRITE_UNLOCK[0m
bool
config [31mCONFIG_ARCH_INLINE_WRITE_UNLOCK_BH[0m
bool
config [31mCONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ[0m
bool
config [31mCONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE[0m
bool
config [31mCONFIG_UNINLINE_SPIN_UNLOCK[0m
bool
#
# lock_* functions are inlined when:
# - [31mCONFIG_DEBUG_SPINLOCK[0m=n and [31mCONFIG_GENERIC_LOCKBREAK[0m=n and ARCH_INLINE_*LOCK=y
#
# trylock_* functions are inlined when:
# - [31mCONFIG_DEBUG_SPINLOCK[0m=n and ARCH_INLINE_*LOCK=y
#
# unlock and unlock_irq functions are inlined when:
# - [31mCONFIG_DEBUG_SPINLOCK[0m=n and ARCH_INLINE_*LOCK=y
# or
# - [31mCONFIG_DEBUG_SPINLOCK[0m=n and [31mCONFIG_PREEMPT[0m=n
#
# unlock_bh and unlock_irqrestore functions are inlined when:
# - [31mCONFIG_DEBUG_SPINLOCK[0m=n and ARCH_INLINE_*LOCK=y
#
if ![31mCONFIG_DEBUG_SPINLOCK[0m
config [31mCONFIG_INLINE_SPIN_TRYLOCK[0m
def_bool y
depends on [31mCONFIG_ARCH_INLINE_SPIN_TRYLOCK[0m
config [31mCONFIG_INLINE_SPIN_TRYLOCK_BH[0m
def_bool y
depends on [31mCONFIG_ARCH_INLINE_SPIN_TRYLOCK_BH[0m
config [31mCONFIG_INLINE_SPIN_LOCK[0m
def_bool y
depends on ![31mCONFIG_GENERIC_LOCKBREAK[0m && [31mCONFIG_ARCH_INLINE_SPIN_LOCK[0m
config [31mCONFIG_INLINE_SPIN_LOCK_BH[0m
def_bool y
depends on ![31mCONFIG_GENERIC_LOCKBREAK[0m && [31mCONFIG_ARCH_INLINE_SPIN_LOCK_BH[0m
config [31mCONFIG_INLINE_SPIN_LOCK_IRQ[0m
def_bool y
depends on ![31mCONFIG_GENERIC_LOCKBREAK[0m && [31mCONFIG_ARCH_INLINE_SPIN_LOCK_IRQ[0m
config [31mCONFIG_INLINE_SPIN_LOCK_IRQSAVE[0m
def_bool y
depends on ![31mCONFIG_GENERIC_LOCKBREAK[0m && [31mCONFIG_ARCH_INLINE_SPIN_LOCK_IRQSAVE[0m
config [31mCONFIG_INLINE_SPIN_UNLOCK_BH[0m
def_bool y
depends on [31mCONFIG_ARCH_INLINE_SPIN_UNLOCK_BH[0m
config [31mCONFIG_INLINE_SPIN_UNLOCK_IRQ[0m
def_bool y
depends on ![31mCONFIG_PREEMPT[0m || [31mCONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQ[0m
config [31mCONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE[0m
def_bool y
depends on [31mCONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE[0m
config [31mCONFIG_INLINE_READ_TRYLOCK[0m
def_bool y
depends on [31mCONFIG_ARCH_INLINE_READ_TRYLOCK[0m
config [31mCONFIG_INLINE_READ_LOCK[0m
def_bool y
depends on ![31mCONFIG_GENERIC_LOCKBREAK[0m && [31mCONFIG_ARCH_INLINE_READ_LOCK[0m
config [31mCONFIG_INLINE_READ_LOCK_BH[0m
def_bool y
depends on ![31mCONFIG_GENERIC_LOCKBREAK[0m && [31mCONFIG_ARCH_INLINE_READ_LOCK_BH[0m
config [31mCONFIG_INLINE_READ_LOCK_IRQ[0m
def_bool y
depends on ![31mCONFIG_GENERIC_LOCKBREAK[0m && [31mCONFIG_ARCH_INLINE_READ_LOCK_IRQ[0m
config [31mCONFIG_INLINE_READ_LOCK_IRQSAVE[0m
def_bool y
depends on ![31mCONFIG_GENERIC_LOCKBREAK[0m && [31mCONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE[0m
config [31mCONFIG_INLINE_READ_UNLOCK[0m
def_bool y
depends on ![31mCONFIG_PREEMPT[0m || [31mCONFIG_ARCH_INLINE_READ_UNLOCK[0m
config [31mCONFIG_INLINE_READ_UNLOCK_BH[0m
def_bool y
depends on [31mCONFIG_ARCH_INLINE_READ_UNLOCK_BH[0m
config [31mCONFIG_INLINE_READ_UNLOCK_IRQ[0m
def_bool y
depends on ![31mCONFIG_PREEMPT[0m || [31mCONFIG_ARCH_INLINE_READ_UNLOCK_IRQ[0m
config [31mCONFIG_INLINE_READ_UNLOCK_IRQRESTORE[0m
def_bool y
depends on [31mCONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE[0m
config [31mCONFIG_INLINE_WRITE_TRYLOCK[0m
def_bool y
depends on [31mCONFIG_ARCH_INLINE_WRITE_TRYLOCK[0m
config [31mCONFIG_INLINE_WRITE_LOCK[0m
def_bool y
depends on ![31mCONFIG_GENERIC_LOCKBREAK[0m && [31mCONFIG_ARCH_INLINE_WRITE_LOCK[0m
config [31mCONFIG_INLINE_WRITE_LOCK_BH[0m
def_bool y
depends on ![31mCONFIG_GENERIC_LOCKBREAK[0m && [31mCONFIG_ARCH_INLINE_WRITE_LOCK_BH[0m
config [31mCONFIG_INLINE_WRITE_LOCK_IRQ[0m
def_bool y
depends on ![31mCONFIG_GENERIC_LOCKBREAK[0m && [31mCONFIG_ARCH_INLINE_WRITE_LOCK_IRQ[0m
config [31mCONFIG_INLINE_WRITE_LOCK_IRQSAVE[0m
def_bool y
depends on ![31mCONFIG_GENERIC_LOCKBREAK[0m && [31mCONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE[0m
config [31mCONFIG_INLINE_WRITE_UNLOCK[0m
def_bool y
depends on ![31mCONFIG_PREEMPT[0m || [31mCONFIG_ARCH_INLINE_WRITE_UNLOCK[0m
config [31mCONFIG_INLINE_WRITE_UNLOCK_BH[0m
def_bool y
depends on [31mCONFIG_ARCH_INLINE_WRITE_UNLOCK_BH[0m
config [31mCONFIG_INLINE_WRITE_UNLOCK_IRQ[0m
def_bool y
depends on ![31mCONFIG_PREEMPT[0m || [31mCONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ[0m
config [31mCONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE[0m
def_bool y
depends on [31mCONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE[0m
endif
config [31mCONFIG_ARCH_SUPPORTS_ATOMIC_RMW[0m
bool
config [31mCONFIG_MUTEX_SPIN_ON_OWNER[0m
def_bool y
depends on [31mCONFIG_SMP[0m && [31mCONFIG_ARCH_SUPPORTS_ATOMIC_RMW[0m
config [31mCONFIG_RWSEM_SPIN_ON_OWNER[0m
def_bool y
depends on [31mCONFIG_SMP[0m && [31mCONFIG_RWSEM_XCHGADD_ALGORITHM[0m && [31mCONFIG_ARCH_SUPPORTS_ATOMIC_RMW[0m
config [31mCONFIG_LOCK_SPIN_ON_OWNER[0m
def_bool y
depends on [31mCONFIG_MUTEX_SPIN_ON_OWNER[0m || [31mCONFIG_RWSEM_SPIN_ON_OWNER[0m
config [31mCONFIG_ARCH_USE_QUEUED_SPINLOCKS[0m
bool
config [31mCONFIG_QUEUED_SPINLOCKS[0m
def_bool y if [31mCONFIG_ARCH_USE_QUEUED_SPINLOCKS[0m
depends on [31mCONFIG_SMP[0m
config [31mCONFIG_ARCH_USE_QUEUED_RWLOCKS[0m
bool
config [31mCONFIG_QUEUED_RWLOCKS[0m
def_bool y if [31mCONFIG_ARCH_USE_QUEUED_RWLOCKS[0m
depends on [31mCONFIG_SMP[0m
menuconfig [31mCONFIG_ESS_LOCK_ANALYSIS[0m
bool "Enable ESS lock analysis facility"
default n
depends on !CONFIG_DEBUG_LOCK_ALLOC && [31mCONFIG_TRACE_IRQFLAGS_SUPPORT[0m && ![31mCONFIG_PROVE_LOCKING[0m && ![31mCONFIG_IRQSOFF_TRACER[0m
select [31mCONFIG_TRACE_IRQFLAGS[0m
if [31mCONFIG_ESS_LOCK_ANALYSIS[0m
config [31mCONFIG_ESS_LOCK_ANALYSIS_SANITY_CHECK_IRQ[0m
bool "Add sanity checks to local_irq_{enable,disable}"
default y
depends on [31mCONFIG_ESS_LOCK_ANALYSIS[0m
config [31mCONFIG_ESS_LOCK_ANALYSIS_BUG[0m
bool "Add some bugs to the kernel"
default y
depends on [31mCONFIG_ESS_LOCK_ANALYSIS[0m
config [31mCONFIG_ESS_LOCK_ANALYSIS_CMPXCHG[0m
bool "Transform cmpxchg from a macro into a function"
depends on [31mCONFIG_ESS_LOCK_ANALYSIS[0m
default y
---help---
Transforms all uses of cmpxchg macro into a function call.
Using this, we can skip all memory accesses triggered
from within this function.
However, some ugly hacks are necessary to make the code compile.
This in turn generates a lot of compiler warnings which makes
it hard to spot a single, important warning.
You may want to disable this feature when developing.
endif # [31mCONFIG_ESS_LOCK_ANALYSIS[0m