0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # The ARCH_INLINE foo is necessary because select ignores "depends on"
0004 #
0005 config ARCH_INLINE_SPIN_TRYLOCK
0006 bool
0007
0008 config ARCH_INLINE_SPIN_TRYLOCK_BH
0009 bool
0010
0011 config ARCH_INLINE_SPIN_LOCK
0012 bool
0013
0014 config ARCH_INLINE_SPIN_LOCK_BH
0015 bool
0016
0017 config ARCH_INLINE_SPIN_LOCK_IRQ
0018 bool
0019
0020 config ARCH_INLINE_SPIN_LOCK_IRQSAVE
0021 bool
0022
0023 config ARCH_INLINE_SPIN_UNLOCK
0024 bool
0025
0026 config ARCH_INLINE_SPIN_UNLOCK_BH
0027 bool
0028
0029 config ARCH_INLINE_SPIN_UNLOCK_IRQ
0030 bool
0031
0032 config ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
0033 bool
0034
0035
0036 config ARCH_INLINE_READ_TRYLOCK
0037 bool
0038
0039 config ARCH_INLINE_READ_LOCK
0040 bool
0041
0042 config ARCH_INLINE_READ_LOCK_BH
0043 bool
0044
0045 config ARCH_INLINE_READ_LOCK_IRQ
0046 bool
0047
0048 config ARCH_INLINE_READ_LOCK_IRQSAVE
0049 bool
0050
0051 config ARCH_INLINE_READ_UNLOCK
0052 bool
0053
0054 config ARCH_INLINE_READ_UNLOCK_BH
0055 bool
0056
0057 config ARCH_INLINE_READ_UNLOCK_IRQ
0058 bool
0059
0060 config ARCH_INLINE_READ_UNLOCK_IRQRESTORE
0061 bool
0062
0063
0064 config ARCH_INLINE_WRITE_TRYLOCK
0065 bool
0066
0067 config ARCH_INLINE_WRITE_LOCK
0068 bool
0069
0070 config ARCH_INLINE_WRITE_LOCK_BH
0071 bool
0072
0073 config ARCH_INLINE_WRITE_LOCK_IRQ
0074 bool
0075
0076 config ARCH_INLINE_WRITE_LOCK_IRQSAVE
0077 bool
0078
0079 config ARCH_INLINE_WRITE_UNLOCK
0080 bool
0081
0082 config ARCH_INLINE_WRITE_UNLOCK_BH
0083 bool
0084
0085 config ARCH_INLINE_WRITE_UNLOCK_IRQ
0086 bool
0087
0088 config ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
0089 bool
0090
0091 config UNINLINE_SPIN_UNLOCK
0092 bool
0093
0094 #
0095 # lock_* functions are inlined when:
0096 # - DEBUG_SPINLOCK=n and GENERIC_LOCKBREAK=n and ARCH_INLINE_*LOCK=y
0097 #
0098 # trylock_* functions are inlined when:
0099 # - DEBUG_SPINLOCK=n and ARCH_INLINE_*LOCK=y
0100 #
0101 # unlock and unlock_irq functions are inlined when:
0102 # - DEBUG_SPINLOCK=n and ARCH_INLINE_*LOCK=y
0103 # or
0104 # - DEBUG_SPINLOCK=n and PREEMPTION=n
0105 #
0106 # unlock_bh and unlock_irqrestore functions are inlined when:
0107 # - DEBUG_SPINLOCK=n and ARCH_INLINE_*LOCK=y
0108 #
0109
0110 if !DEBUG_SPINLOCK
0111
0112 config INLINE_SPIN_TRYLOCK
0113 def_bool y
0114 depends on ARCH_INLINE_SPIN_TRYLOCK
0115
0116 config INLINE_SPIN_TRYLOCK_BH
0117 def_bool y
0118 depends on ARCH_INLINE_SPIN_TRYLOCK_BH
0119
0120 config INLINE_SPIN_LOCK
0121 def_bool y
0122 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_SPIN_LOCK
0123
0124 config INLINE_SPIN_LOCK_BH
0125 def_bool y
0126 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_SPIN_LOCK_BH
0127
0128 config INLINE_SPIN_LOCK_IRQ
0129 def_bool y
0130 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_SPIN_LOCK_IRQ
0131
0132 config INLINE_SPIN_LOCK_IRQSAVE
0133 def_bool y
0134 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_SPIN_LOCK_IRQSAVE
0135
0136 config INLINE_SPIN_UNLOCK_BH
0137 def_bool y
0138 depends on ARCH_INLINE_SPIN_UNLOCK_BH
0139
0140 config INLINE_SPIN_UNLOCK_IRQ
0141 def_bool y
0142 depends on !PREEMPTION || ARCH_INLINE_SPIN_UNLOCK_IRQ
0143
0144 config INLINE_SPIN_UNLOCK_IRQRESTORE
0145 def_bool y
0146 depends on ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
0147
0148
0149 config INLINE_READ_TRYLOCK
0150 def_bool y
0151 depends on ARCH_INLINE_READ_TRYLOCK
0152
0153 config INLINE_READ_LOCK
0154 def_bool y
0155 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_READ_LOCK
0156
0157 config INLINE_READ_LOCK_BH
0158 def_bool y
0159 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_READ_LOCK_BH
0160
0161 config INLINE_READ_LOCK_IRQ
0162 def_bool y
0163 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_READ_LOCK_IRQ
0164
0165 config INLINE_READ_LOCK_IRQSAVE
0166 def_bool y
0167 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_READ_LOCK_IRQSAVE
0168
0169 config INLINE_READ_UNLOCK
0170 def_bool y
0171 depends on !PREEMPTION || ARCH_INLINE_READ_UNLOCK
0172
0173 config INLINE_READ_UNLOCK_BH
0174 def_bool y
0175 depends on ARCH_INLINE_READ_UNLOCK_BH
0176
0177 config INLINE_READ_UNLOCK_IRQ
0178 def_bool y
0179 depends on !PREEMPTION || ARCH_INLINE_READ_UNLOCK_IRQ
0180
0181 config INLINE_READ_UNLOCK_IRQRESTORE
0182 def_bool y
0183 depends on ARCH_INLINE_READ_UNLOCK_IRQRESTORE
0184
0185
0186 config INLINE_WRITE_TRYLOCK
0187 def_bool y
0188 depends on ARCH_INLINE_WRITE_TRYLOCK
0189
0190 config INLINE_WRITE_LOCK
0191 def_bool y
0192 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_WRITE_LOCK
0193
0194 config INLINE_WRITE_LOCK_BH
0195 def_bool y
0196 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_WRITE_LOCK_BH
0197
0198 config INLINE_WRITE_LOCK_IRQ
0199 def_bool y
0200 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_WRITE_LOCK_IRQ
0201
0202 config INLINE_WRITE_LOCK_IRQSAVE
0203 def_bool y
0204 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_WRITE_LOCK_IRQSAVE
0205
0206 config INLINE_WRITE_UNLOCK
0207 def_bool y
0208 depends on !PREEMPTION || ARCH_INLINE_WRITE_UNLOCK
0209
0210 config INLINE_WRITE_UNLOCK_BH
0211 def_bool y
0212 depends on ARCH_INLINE_WRITE_UNLOCK_BH
0213
0214 config INLINE_WRITE_UNLOCK_IRQ
0215 def_bool y
0216 depends on !PREEMPTION || ARCH_INLINE_WRITE_UNLOCK_IRQ
0217
0218 config INLINE_WRITE_UNLOCK_IRQRESTORE
0219 def_bool y
0220 depends on ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
0221
0222 endif
0223
0224 config ARCH_SUPPORTS_ATOMIC_RMW
0225 bool
0226
0227 config MUTEX_SPIN_ON_OWNER
0228 def_bool y
0229 depends on SMP && ARCH_SUPPORTS_ATOMIC_RMW
0230
0231 config RWSEM_SPIN_ON_OWNER
0232 def_bool y
0233 depends on SMP && ARCH_SUPPORTS_ATOMIC_RMW
0234
0235 config LOCK_SPIN_ON_OWNER
0236 def_bool y
0237 depends on MUTEX_SPIN_ON_OWNER || RWSEM_SPIN_ON_OWNER
0238
0239 config ARCH_USE_QUEUED_SPINLOCKS
0240 bool
0241
0242 config QUEUED_SPINLOCKS
0243 def_bool y if ARCH_USE_QUEUED_SPINLOCKS
0244 depends on SMP
0245
0246 config BPF_ARCH_SPINLOCK
0247 bool
0248
0249 config ARCH_USE_QUEUED_RWLOCKS
0250 bool
0251
0252 config QUEUED_RWLOCKS
0253 def_bool y if ARCH_USE_QUEUED_RWLOCKS
0254 depends on SMP && !PREEMPT_RT
0255
0256 config ARCH_HAS_MMIOWB
0257 bool
0258
0259 config MMIOWB
0260 def_bool y if ARCH_HAS_MMIOWB
0261 depends on SMP