aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/linux/rcupdate.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
index c84373626336..e22960ecb71a 100644
--- a/include/linux/rcupdate.h
+++ b/include/linux/rcupdate.h
@@ -136,6 +136,7 @@ static inline int rcu_read_lock_bh_held(void)
136 * can prove otherwise. Note that disabling of preemption (including 136 * can prove otherwise. Note that disabling of preemption (including
137 * disabling irqs) counts as an RCU-sched read-side critical section. 137 * disabling irqs) counts as an RCU-sched read-side critical section.
138 */ 138 */
139#ifdef CONFIG_PREEMPT
139static inline int rcu_read_lock_sched_held(void) 140static inline int rcu_read_lock_sched_held(void)
140{ 141{
141 int lockdep_opinion = 0; 142 int lockdep_opinion = 0;
@@ -144,6 +145,12 @@ static inline int rcu_read_lock_sched_held(void)
144 lockdep_opinion = lock_is_held(&rcu_sched_lock_map); 145 lockdep_opinion = lock_is_held(&rcu_sched_lock_map);
145 return lockdep_opinion || preempt_count() != 0 || !rcu_scheduler_active; 146 return lockdep_opinion || preempt_count() != 0 || !rcu_scheduler_active;
146} 147}
148#else /* #ifdef CONFIG_PREEMPT */
149static inline int rcu_read_lock_sched_held(void)
150{
151 return 1;
152}
153#endif /* #else #ifdef CONFIG_PREEMPT */
147 154
148#else /* #ifdef CONFIG_DEBUG_LOCK_ALLOC */ 155#else /* #ifdef CONFIG_DEBUG_LOCK_ALLOC */
149 156
@@ -164,10 +171,17 @@ static inline int rcu_read_lock_bh_held(void)
164 return 1; 171 return 1;
165} 172}
166 173
174#ifdef CONFIG_PREEMPT
167static inline int rcu_read_lock_sched_held(void) 175static inline int rcu_read_lock_sched_held(void)
168{ 176{
169 return preempt_count() != 0 || !rcu_scheduler_active; 177 return preempt_count() != 0 || !rcu_scheduler_active;
170} 178}
179#else /* #ifdef CONFIG_PREEMPT */
180static inline int rcu_read_lock_sched_held(void)
181{
182 return 1;
183}
184#endif /* #else #ifdef CONFIG_PREEMPT */
171 185
172#endif /* #else #ifdef CONFIG_DEBUG_LOCK_ALLOC */ 186#endif /* #else #ifdef CONFIG_DEBUG_LOCK_ALLOC */
173 187