1#
2# The ARCH_INLINE foo is necessary because select ignores "depends on"
3#
4config ARCH_INLINE_SPIN_TRYLOCK
5	bool
6
7config ARCH_INLINE_SPIN_TRYLOCK_BH
8	bool
9
10config ARCH_INLINE_SPIN_LOCK
11	bool
12
13config ARCH_INLINE_SPIN_LOCK_BH
14	bool
15
16config ARCH_INLINE_SPIN_LOCK_IRQ
17	bool
18
19config ARCH_INLINE_SPIN_LOCK_IRQSAVE
20	bool
21
22config ARCH_INLINE_SPIN_UNLOCK
23	bool
24
25config ARCH_INLINE_SPIN_UNLOCK_BH
26	bool
27
28config ARCH_INLINE_SPIN_UNLOCK_IRQ
29	bool
30
31config ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
32	bool
33
34
35config ARCH_INLINE_READ_TRYLOCK
36	bool
37
38config ARCH_INLINE_READ_LOCK
39	bool
40
41config ARCH_INLINE_READ_LOCK_BH
42	bool
43
44config ARCH_INLINE_READ_LOCK_IRQ
45	bool
46
47config ARCH_INLINE_READ_LOCK_IRQSAVE
48	bool
49
50config ARCH_INLINE_READ_UNLOCK
51	bool
52
53config ARCH_INLINE_READ_UNLOCK_BH
54	bool
55
56config ARCH_INLINE_READ_UNLOCK_IRQ
57	bool
58
59config ARCH_INLINE_READ_UNLOCK_IRQRESTORE
60	bool
61
62
63config ARCH_INLINE_WRITE_TRYLOCK
64	bool
65
66config ARCH_INLINE_WRITE_LOCK
67	bool
68
69config ARCH_INLINE_WRITE_LOCK_BH
70	bool
71
72config ARCH_INLINE_WRITE_LOCK_IRQ
73	bool
74
75config ARCH_INLINE_WRITE_LOCK_IRQSAVE
76	bool
77
78config ARCH_INLINE_WRITE_UNLOCK
79	bool
80
81config ARCH_INLINE_WRITE_UNLOCK_BH
82	bool
83
84config ARCH_INLINE_WRITE_UNLOCK_IRQ
85	bool
86
87config ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
88	bool
89
90#
91# lock_* functions are inlined when:
92#   - DEBUG_SPINLOCK=n and GENERIC_LOCKBREAK=n and ARCH_INLINE_*LOCK=y
93#
94# trylock_* functions are inlined when:
95#   - DEBUG_SPINLOCK=n and ARCH_INLINE_*LOCK=y
96#
97# unlock and unlock_irq functions are inlined when:
98#   - DEBUG_SPINLOCK=n and ARCH_INLINE_*LOCK=y
99#  or
100#   - DEBUG_SPINLOCK=n and PREEMPT=n
101#
102# unlock_bh and unlock_irqrestore functions are inlined when:
103#   - DEBUG_SPINLOCK=n and ARCH_INLINE_*LOCK=y
104#
105
106config INLINE_SPIN_TRYLOCK
107	def_bool !DEBUG_SPINLOCK && ARCH_INLINE_SPIN_TRYLOCK
108
109config INLINE_SPIN_TRYLOCK_BH
110	def_bool !DEBUG_SPINLOCK && ARCH_INLINE_SPIN_TRYLOCK_BH
111
112config INLINE_SPIN_LOCK
113	def_bool !DEBUG_SPINLOCK && !GENERIC_LOCKBREAK && ARCH_INLINE_SPIN_LOCK
114
115config INLINE_SPIN_LOCK_BH
116	def_bool !DEBUG_SPINLOCK && !GENERIC_LOCKBREAK && \
117		 ARCH_INLINE_SPIN_LOCK_BH
118
119config INLINE_SPIN_LOCK_IRQ
120	def_bool !DEBUG_SPINLOCK && !GENERIC_LOCKBREAK && \
121		 ARCH_INLINE_SPIN_LOCK_IRQ
122
123config INLINE_SPIN_LOCK_IRQSAVE
124	def_bool !DEBUG_SPINLOCK && !GENERIC_LOCKBREAK && \
125		 ARCH_INLINE_SPIN_LOCK_IRQSAVE
126
127config INLINE_SPIN_UNLOCK
128	def_bool !DEBUG_SPINLOCK && (!PREEMPT || ARCH_INLINE_SPIN_UNLOCK)
129
130config INLINE_SPIN_UNLOCK_BH
131	def_bool !DEBUG_SPINLOCK && ARCH_INLINE_SPIN_UNLOCK_BH
132
133config INLINE_SPIN_UNLOCK_IRQ
134	def_bool !DEBUG_SPINLOCK && (!PREEMPT || ARCH_INLINE_SPIN_UNLOCK_BH)
135
136config INLINE_SPIN_UNLOCK_IRQRESTORE
137	def_bool !DEBUG_SPINLOCK && ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
138
139
140config INLINE_READ_TRYLOCK
141	def_bool !DEBUG_SPINLOCK && ARCH_INLINE_READ_TRYLOCK
142
143config INLINE_READ_LOCK
144	def_bool !DEBUG_SPINLOCK && !GENERIC_LOCKBREAK && ARCH_INLINE_READ_LOCK
145
146config INLINE_READ_LOCK_BH
147	def_bool !DEBUG_SPINLOCK && !GENERIC_LOCKBREAK && \
148		 ARCH_INLINE_READ_LOCK_BH
149
150config INLINE_READ_LOCK_IRQ
151	def_bool !DEBUG_SPINLOCK && !GENERIC_LOCKBREAK && \
152		 ARCH_INLINE_READ_LOCK_IRQ
153
154config INLINE_READ_LOCK_IRQSAVE
155	def_bool !DEBUG_SPINLOCK && !GENERIC_LOCKBREAK && \
156		 ARCH_INLINE_READ_LOCK_IRQSAVE
157
158config INLINE_READ_UNLOCK
159	def_bool !DEBUG_SPINLOCK && (!PREEMPT || ARCH_INLINE_READ_UNLOCK)
160
161config INLINE_READ_UNLOCK_BH
162	def_bool !DEBUG_SPINLOCK && ARCH_INLINE_READ_UNLOCK_BH
163
164config INLINE_READ_UNLOCK_IRQ
165	def_bool !DEBUG_SPINLOCK && (!PREEMPT || ARCH_INLINE_READ_UNLOCK_BH)
166
167config INLINE_READ_UNLOCK_IRQRESTORE
168	def_bool !DEBUG_SPINLOCK && ARCH_INLINE_READ_UNLOCK_IRQRESTORE
169
170
171config INLINE_WRITE_TRYLOCK
172	def_bool !DEBUG_SPINLOCK && ARCH_INLINE_WRITE_TRYLOCK
173
174config INLINE_WRITE_LOCK
175	def_bool !DEBUG_SPINLOCK && !GENERIC_LOCKBREAK && ARCH_INLINE_WRITE_LOCK
176
177config INLINE_WRITE_LOCK_BH
178	def_bool !DEBUG_SPINLOCK && !GENERIC_LOCKBREAK && \
179		 ARCH_INLINE_WRITE_LOCK_BH
180
181config INLINE_WRITE_LOCK_IRQ
182	def_bool !DEBUG_SPINLOCK && !GENERIC_LOCKBREAK && \
183		 ARCH_INLINE_WRITE_LOCK_IRQ
184
185config INLINE_WRITE_LOCK_IRQSAVE
186	def_bool !DEBUG_SPINLOCK && !GENERIC_LOCKBREAK && \
187		 ARCH_INLINE_WRITE_LOCK_IRQSAVE
188
189config INLINE_WRITE_UNLOCK
190	def_bool !DEBUG_SPINLOCK && (!PREEMPT || ARCH_INLINE_WRITE_UNLOCK)
191
192config INLINE_WRITE_UNLOCK_BH
193	def_bool !DEBUG_SPINLOCK && ARCH_INLINE_WRITE_UNLOCK_BH
194
195config INLINE_WRITE_UNLOCK_IRQ
196	def_bool !DEBUG_SPINLOCK && (!PREEMPT || ARCH_INLINE_WRITE_UNLOCK_BH)
197
198config INLINE_WRITE_UNLOCK_IRQRESTORE
199	def_bool !DEBUG_SPINLOCK && ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
200
201config MUTEX_SPIN_ON_OWNER
202	def_bool SMP && !DEBUG_MUTEXES && !HAVE_DEFAULT_NO_SPIN_MUTEXES
203