2 # The ARCH_INLINE foo is necessary because select ignores "depends on"
4 config ARCH_INLINE_SPIN_TRYLOCK
7 config ARCH_INLINE_SPIN_TRYLOCK_BH
10 config ARCH_INLINE_SPIN_LOCK
13 config ARCH_INLINE_SPIN_LOCK_BH
16 config ARCH_INLINE_SPIN_LOCK_IRQ
19 config ARCH_INLINE_SPIN_LOCK_IRQSAVE
22 config ARCH_INLINE_SPIN_UNLOCK
25 config ARCH_INLINE_SPIN_UNLOCK_BH
28 config ARCH_INLINE_SPIN_UNLOCK_IRQ
31 config ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
35 config ARCH_INLINE_READ_TRYLOCK
38 config ARCH_INLINE_READ_LOCK
41 config ARCH_INLINE_READ_LOCK_BH
44 config ARCH_INLINE_READ_LOCK_IRQ
47 config ARCH_INLINE_READ_LOCK_IRQSAVE
50 config ARCH_INLINE_READ_UNLOCK
53 config ARCH_INLINE_READ_UNLOCK_BH
56 config ARCH_INLINE_READ_UNLOCK_IRQ
59 config ARCH_INLINE_READ_UNLOCK_IRQRESTORE
63 config ARCH_INLINE_WRITE_TRYLOCK
66 config ARCH_INLINE_WRITE_LOCK
69 config ARCH_INLINE_WRITE_LOCK_BH
72 config ARCH_INLINE_WRITE_LOCK_IRQ
75 config ARCH_INLINE_WRITE_LOCK_IRQSAVE
78 config ARCH_INLINE_WRITE_UNLOCK
81 config ARCH_INLINE_WRITE_UNLOCK_BH
84 config ARCH_INLINE_WRITE_UNLOCK_IRQ
87 config ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
90 config UNINLINE_SPIN_UNLOCK
94 # lock_* functions are inlined when:
95 # - DEBUG_SPINLOCK=n and GENERIC_LOCKBREAK=n and ARCH_INLINE_*LOCK=y
97 # trylock_* functions are inlined when:
98 # - DEBUG_SPINLOCK=n and ARCH_INLINE_*LOCK=y
100 # unlock and unlock_irq functions are inlined when:
101 # - DEBUG_SPINLOCK=n and ARCH_INLINE_*LOCK=y
103 # - DEBUG_SPINLOCK=n and PREEMPT=n
105 # unlock_bh and unlock_irqrestore functions are inlined when:
106 # - DEBUG_SPINLOCK=n and ARCH_INLINE_*LOCK=y
111 config INLINE_SPIN_TRYLOCK
113 depends on ARCH_INLINE_SPIN_TRYLOCK
115 config INLINE_SPIN_TRYLOCK_BH
117 depends on ARCH_INLINE_SPIN_TRYLOCK_BH
119 config INLINE_SPIN_LOCK
121 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_SPIN_LOCK
123 config INLINE_SPIN_LOCK_BH
125 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_SPIN_LOCK_BH
127 config INLINE_SPIN_LOCK_IRQ
129 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_SPIN_LOCK_IRQ
131 config INLINE_SPIN_LOCK_IRQSAVE
133 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_SPIN_LOCK_IRQSAVE
135 config INLINE_SPIN_UNLOCK_BH
137 depends on ARCH_INLINE_SPIN_UNLOCK_BH
139 config INLINE_SPIN_UNLOCK_IRQ
141 depends on !PREEMPT || ARCH_INLINE_SPIN_UNLOCK_IRQ
143 config INLINE_SPIN_UNLOCK_IRQRESTORE
145 depends on ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
148 config INLINE_READ_TRYLOCK
150 depends on ARCH_INLINE_READ_TRYLOCK
152 config INLINE_READ_LOCK
154 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_READ_LOCK
156 config INLINE_READ_LOCK_BH
158 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_READ_LOCK_BH
160 config INLINE_READ_LOCK_IRQ
162 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_READ_LOCK_IRQ
164 config INLINE_READ_LOCK_IRQSAVE
166 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_READ_LOCK_IRQSAVE
168 config INLINE_READ_UNLOCK
170 depends on !PREEMPT || ARCH_INLINE_READ_UNLOCK
172 config INLINE_READ_UNLOCK_BH
174 depends on ARCH_INLINE_READ_UNLOCK_BH
176 config INLINE_READ_UNLOCK_IRQ
178 depends on !PREEMPT || ARCH_INLINE_READ_UNLOCK_IRQ
180 config INLINE_READ_UNLOCK_IRQRESTORE
182 depends on ARCH_INLINE_READ_UNLOCK_IRQRESTORE
185 config INLINE_WRITE_TRYLOCK
187 depends on ARCH_INLINE_WRITE_TRYLOCK
189 config INLINE_WRITE_LOCK
191 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_WRITE_LOCK
193 config INLINE_WRITE_LOCK_BH
195 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_WRITE_LOCK_BH
197 config INLINE_WRITE_LOCK_IRQ
199 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_WRITE_LOCK_IRQ
201 config INLINE_WRITE_LOCK_IRQSAVE
203 depends on !GENERIC_LOCKBREAK && ARCH_INLINE_WRITE_LOCK_IRQSAVE
205 config INLINE_WRITE_UNLOCK
207 depends on !PREEMPT || ARCH_INLINE_WRITE_UNLOCK
209 config INLINE_WRITE_UNLOCK_BH
211 depends on ARCH_INLINE_WRITE_UNLOCK_BH
213 config INLINE_WRITE_UNLOCK_IRQ
215 depends on !PREEMPT || ARCH_INLINE_WRITE_UNLOCK_IRQ
217 config INLINE_WRITE_UNLOCK_IRQRESTORE
219 depends on ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
223 config ARCH_SUPPORTS_ATOMIC_RMW
226 config MUTEX_SPIN_ON_OWNER
228 depends on SMP && !DEBUG_MUTEXES && ARCH_SUPPORTS_ATOMIC_RMW && !PREEMPT_RT_FULL
230 config RWSEM_SPIN_ON_OWNER
232 depends on SMP && RWSEM_XCHGADD_ALGORITHM && ARCH_SUPPORTS_ATOMIC_RMW && !PREEMPT_RT_FULL
234 config LOCK_SPIN_ON_OWNER
236 depends on MUTEX_SPIN_ON_OWNER || RWSEM_SPIN_ON_OWNER
238 config ARCH_USE_QUEUE_RWLOCK
242 def_bool y if ARCH_USE_QUEUE_RWLOCK