diff options
| -rw-r--r-- | include/linux/rcupdate.h | 14 |
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 | ||
| 139 | static inline int rcu_read_lock_sched_held(void) | 140 | static 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 */ | ||
| 149 | static 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 | ||
| 167 | static inline int rcu_read_lock_sched_held(void) | 175 | static 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 */ | ||
| 180 | static 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 | ||
