linux/kernel/Kconfig.locks
<<
>>
Prefs
   1# SPDX-License-Identifier: GPL-2.0-only
   2#
   3# The ARCH_INLINE foo is necessary because select ignores "depends on"
   4#
   5config ARCH_INLINE_SPIN_TRYLOCK
   6        bool
   7
   8config ARCH_INLINE_SPIN_TRYLOCK_BH
   9        bool
  10
  11config ARCH_INLINE_SPIN_LOCK
  12        bool
  13
  14config ARCH_INLINE_SPIN_LOCK_BH
  15        bool
  16
  17config ARCH_INLINE_SPIN_LOCK_IRQ
  18        bool
  19
  20config ARCH_INLINE_SPIN_LOCK_IRQSAVE
  21        bool
  22
  23config ARCH_INLINE_SPIN_UNLOCK
  24        bool
  25
  26config ARCH_INLINE_SPIN_UNLOCK_BH
  27        bool
  28
  29config ARCH_INLINE_SPIN_UNLOCK_IRQ
  30        bool
  31
  32config ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
  33        bool
  34
  35
  36config ARCH_INLINE_READ_TRYLOCK
  37        bool
  38
  39config ARCH_INLINE_READ_LOCK
  40        bool
  41
  42config ARCH_INLINE_READ_LOCK_BH
  43        bool
  44
  45config ARCH_INLINE_READ_LOCK_IRQ
  46        bool
  47
  48config ARCH_INLINE_READ_LOCK_IRQSAVE
  49        bool
  50
  51config ARCH_INLINE_READ_UNLOCK
  52        bool
  53
  54config ARCH_INLINE_READ_UNLOCK_BH
  55        bool
  56
  57config ARCH_INLINE_READ_UNLOCK_IRQ
  58        bool
  59
  60config ARCH_INLINE_READ_UNLOCK_IRQRESTORE
  61        bool
  62
  63
  64config ARCH_INLINE_WRITE_TRYLOCK
  65        bool
  66
  67config ARCH_INLINE_WRITE_LOCK
  68        bool
  69
  70config ARCH_INLINE_WRITE_LOCK_BH
  71        bool
  72
  73config ARCH_INLINE_WRITE_LOCK_IRQ
  74        bool
  75
  76config ARCH_INLINE_WRITE_LOCK_IRQSAVE
  77        bool
  78
  79config ARCH_INLINE_WRITE_UNLOCK
  80        bool
  81
  82config ARCH_INLINE_WRITE_UNLOCK_BH
  83        bool
  84
  85config ARCH_INLINE_WRITE_UNLOCK_IRQ
  86        bool
  87
  88config ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
  89        bool
  90
  91config UNINLINE_SPIN_UNLOCK
  92        bool
  93
  94#
  95# lock_* functions are inlined when:
  96#   - DEBUG_SPINLOCK=n and GENERIC_LOCKBREAK=n and ARCH_INLINE_*LOCK=y
  97#
  98# trylock_* functions are inlined when:
  99#   - DEBUG_SPINLOCK=n and ARCH_INLINE_*LOCK=y
 100#
 101# unlock and unlock_irq functions are inlined when:
 102#   - DEBUG_SPINLOCK=n and ARCH_INLINE_*LOCK=y
 103#  or
 104#   - DEBUG_SPINLOCK=n and PREEMPT=n
 105#
 106# unlock_bh and unlock_irqrestore functions are inlined when:
 107#   - DEBUG_SPINLOCK=n and ARCH_INLINE_*LOCK=y
 108#
 109
 110if !DEBUG_SPINLOCK
 111
 112config INLINE_SPIN_TRYLOCK
 113        def_bool y
 114        depends on ARCH_INLINE_SPIN_TRYLOCK
 115
 116config INLINE_SPIN_TRYLOCK_BH
 117        def_bool y
 118        depends on ARCH_INLINE_SPIN_TRYLOCK_BH
 119
 120config INLINE_SPIN_LOCK
 121        def_bool y
 122        depends on !GENERIC_LOCKBREAK && ARCH_INLINE_SPIN_LOCK
 123
 124config INLINE_SPIN_LOCK_BH
 125        def_bool y
 126        depends on !GENERIC_LOCKBREAK && ARCH_INLINE_SPIN_LOCK_BH
 127
 128config INLINE_SPIN_LOCK_IRQ
 129        def_bool y
 130        depends on !GENERIC_LOCKBREAK && ARCH_INLINE_SPIN_LOCK_IRQ
 131
 132config INLINE_SPIN_LOCK_IRQSAVE
 133        def_bool y
 134        depends on !GENERIC_LOCKBREAK && ARCH_INLINE_SPIN_LOCK_IRQSAVE
 135
 136config INLINE_SPIN_UNLOCK_BH
 137        def_bool y
 138        depends on ARCH_INLINE_SPIN_UNLOCK_BH
 139
 140config INLINE_SPIN_UNLOCK_IRQ
 141        def_bool y
 142        depends on !PREEMPT || ARCH_INLINE_SPIN_UNLOCK_IRQ
 143
 144config INLINE_SPIN_UNLOCK_IRQRESTORE
 145        def_bool y
 146        depends on ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
 147
 148
 149config INLINE_READ_TRYLOCK
 150        def_bool y
 151        depends on ARCH_INLINE_READ_TRYLOCK
 152
 153config INLINE_READ_LOCK
 154        def_bool y
 155        depends on !GENERIC_LOCKBREAK && ARCH_INLINE_READ_LOCK
 156
 157config INLINE_READ_LOCK_BH
 158        def_bool y
 159        depends on !GENERIC_LOCKBREAK && ARCH_INLINE_READ_LOCK_BH
 160
 161config INLINE_READ_LOCK_IRQ
 162        def_bool y
 163        depends on !GENERIC_LOCKBREAK && ARCH_INLINE_READ_LOCK_IRQ
 164
 165config INLINE_READ_LOCK_IRQSAVE
 166        def_bool y
 167        depends on !GENERIC_LOCKBREAK && ARCH_INLINE_READ_LOCK_IRQSAVE
 168
 169config INLINE_READ_UNLOCK
 170        def_bool y
 171        depends on !PREEMPT || ARCH_INLINE_READ_UNLOCK
 172
 173config INLINE_READ_UNLOCK_BH
 174        def_bool y
 175        depends on ARCH_INLINE_READ_UNLOCK_BH
 176
 177config INLINE_READ_UNLOCK_IRQ
 178        def_bool y
 179        depends on !PREEMPT || ARCH_INLINE_READ_UNLOCK_IRQ
 180
 181config INLINE_READ_UNLOCK_IRQRESTORE
 182        def_bool y
 183        depends on ARCH_INLINE_READ_UNLOCK_IRQRESTORE
 184
 185
 186config INLINE_WRITE_TRYLOCK
 187        def_bool y
 188        depends on ARCH_INLINE_WRITE_TRYLOCK
 189
 190config INLINE_WRITE_LOCK
 191        def_bool y
 192        depends on !GENERIC_LOCKBREAK && ARCH_INLINE_WRITE_LOCK
 193
 194config INLINE_WRITE_LOCK_BH
 195        def_bool y
 196        depends on !GENERIC_LOCKBREAK && ARCH_INLINE_WRITE_LOCK_BH
 197
 198config INLINE_WRITE_LOCK_IRQ
 199        def_bool y
 200        depends on !GENERIC_LOCKBREAK && ARCH_INLINE_WRITE_LOCK_IRQ
 201
 202config INLINE_WRITE_LOCK_IRQSAVE
 203        def_bool y
 204        depends on !GENERIC_LOCKBREAK && ARCH_INLINE_WRITE_LOCK_IRQSAVE
 205
 206config INLINE_WRITE_UNLOCK
 207        def_bool y
 208        depends on !PREEMPT || ARCH_INLINE_WRITE_UNLOCK
 209
 210config INLINE_WRITE_UNLOCK_BH
 211        def_bool y
 212        depends on ARCH_INLINE_WRITE_UNLOCK_BH
 213
 214config INLINE_WRITE_UNLOCK_IRQ
 215        def_bool y
 216        depends on !PREEMPT || ARCH_INLINE_WRITE_UNLOCK_IRQ
 217
 218config INLINE_WRITE_UNLOCK_IRQRESTORE
 219        def_bool y
 220        depends on ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
 221
 222endif
 223
 224config ARCH_SUPPORTS_ATOMIC_RMW
 225        bool
 226
 227config MUTEX_SPIN_ON_OWNER
 228        def_bool y
 229        depends on SMP && ARCH_SUPPORTS_ATOMIC_RMW
 230
 231config RWSEM_SPIN_ON_OWNER
 232       def_bool y
 233       depends on SMP && ARCH_SUPPORTS_ATOMIC_RMW
 234
 235config LOCK_SPIN_ON_OWNER
 236       def_bool y
 237       depends on MUTEX_SPIN_ON_OWNER || RWSEM_SPIN_ON_OWNER
 238
 239config ARCH_USE_QUEUED_SPINLOCKS
 240        bool
 241
 242config QUEUED_SPINLOCKS
 243        def_bool y if ARCH_USE_QUEUED_SPINLOCKS
 244        depends on SMP
 245
 246config BPF_ARCH_SPINLOCK
 247        bool
 248
 249config ARCH_USE_QUEUED_RWLOCKS
 250        bool
 251
 252config QUEUED_RWLOCKS
 253        def_bool y if ARCH_USE_QUEUED_RWLOCKS
 254        depends on SMP
 255
 256config ARCH_HAS_MMIOWB
 257        bool
 258
 259config MMIOWB
 260        def_bool y if ARCH_HAS_MMIOWB
 261        depends on SMP
 262