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