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 PREEMPTION=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 !PREEMPTION || 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 !PREEMPTION || 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 !PREEMPTION || 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 !PREEMPTION || 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 !PREEMPTION || 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