diff options
Diffstat (limited to 'include/linux/rcutree.h')
| -rw-r--r-- | include/linux/rcutree.h | 57 |
1 files changed, 2 insertions, 55 deletions
diff --git a/include/linux/rcutree.h b/include/linux/rcutree.h index c0ed1c056f29..95518e628794 100644 --- a/include/linux/rcutree.h +++ b/include/linux/rcutree.h | |||
| @@ -30,64 +30,23 @@ | |||
| 30 | #ifndef __LINUX_RCUTREE_H | 30 | #ifndef __LINUX_RCUTREE_H |
| 31 | #define __LINUX_RCUTREE_H | 31 | #define __LINUX_RCUTREE_H |
| 32 | 32 | ||
| 33 | struct notifier_block; | ||
| 34 | |||
| 35 | extern void rcu_sched_qs(int cpu); | ||
| 36 | extern void rcu_bh_qs(int cpu); | ||
| 37 | extern void rcu_note_context_switch(int cpu); | 33 | extern void rcu_note_context_switch(int cpu); |
| 38 | extern int rcu_needs_cpu(int cpu); | 34 | extern int rcu_needs_cpu(int cpu); |
| 35 | extern void rcu_cpu_stall_reset(void); | ||
| 39 | 36 | ||
| 40 | #ifdef CONFIG_TREE_PREEMPT_RCU | 37 | #ifdef CONFIG_TREE_PREEMPT_RCU |
| 41 | 38 | ||
| 42 | extern void __rcu_read_lock(void); | ||
| 43 | extern void __rcu_read_unlock(void); | ||
| 44 | extern void synchronize_rcu(void); | ||
| 45 | extern void exit_rcu(void); | 39 | extern void exit_rcu(void); |
| 46 | 40 | ||
| 47 | /* | ||
| 48 | * Defined as macro as it is a very low level header | ||
| 49 | * included from areas that don't even know about current | ||
| 50 | */ | ||
| 51 | #define rcu_preempt_depth() (current->rcu_read_lock_nesting) | ||
| 52 | |||
| 53 | #else /* #ifdef CONFIG_TREE_PREEMPT_RCU */ | 41 | #else /* #ifdef CONFIG_TREE_PREEMPT_RCU */ |
| 54 | 42 | ||
| 55 | static inline void __rcu_read_lock(void) | ||
| 56 | { | ||
| 57 | preempt_disable(); | ||
| 58 | } | ||
| 59 | |||
| 60 | static inline void __rcu_read_unlock(void) | ||
| 61 | { | ||
| 62 | preempt_enable(); | ||
| 63 | } | ||
| 64 | |||
| 65 | #define synchronize_rcu synchronize_sched | ||
| 66 | |||
| 67 | static inline void exit_rcu(void) | 43 | static inline void exit_rcu(void) |
| 68 | { | 44 | { |
| 69 | } | 45 | } |
| 70 | 46 | ||
| 71 | static inline int rcu_preempt_depth(void) | ||
| 72 | { | ||
| 73 | return 0; | ||
| 74 | } | ||
| 75 | |||
| 76 | #endif /* #else #ifdef CONFIG_TREE_PREEMPT_RCU */ | 47 | #endif /* #else #ifdef CONFIG_TREE_PREEMPT_RCU */ |
| 77 | 48 | ||
| 78 | static inline void __rcu_read_lock_bh(void) | ||
| 79 | { | ||
| 80 | local_bh_disable(); | ||
| 81 | } | ||
| 82 | static inline void __rcu_read_unlock_bh(void) | ||
| 83 | { | ||
| 84 | local_bh_enable(); | ||
| 85 | } | ||
| 86 | |||
| 87 | extern void call_rcu_sched(struct rcu_head *head, | ||
| 88 | void (*func)(struct rcu_head *rcu)); | ||
| 89 | extern void synchronize_rcu_bh(void); | 49 | extern void synchronize_rcu_bh(void); |
| 90 | extern void synchronize_sched(void); | ||
| 91 | extern void synchronize_rcu_expedited(void); | 50 | extern void synchronize_rcu_expedited(void); |
| 92 | 51 | ||
| 93 | static inline void synchronize_rcu_bh_expedited(void) | 52 | static inline void synchronize_rcu_bh_expedited(void) |
| @@ -95,7 +54,7 @@ static inline void synchronize_rcu_bh_expedited(void) | |||
| 95 | synchronize_sched_expedited(); | 54 | synchronize_sched_expedited(); |
| 96 | } | 55 | } |
| 97 | 56 | ||
| 98 | extern void rcu_check_callbacks(int cpu, int user); | 57 | extern void rcu_barrier(void); |
| 99 | 58 | ||
| 100 | extern long rcu_batches_completed(void); | 59 | extern long rcu_batches_completed(void); |
| 101 | extern long rcu_batches_completed_bh(void); | 60 | extern long rcu_batches_completed_bh(void); |
| @@ -104,18 +63,6 @@ extern void rcu_force_quiescent_state(void); | |||
| 104 | extern void rcu_bh_force_quiescent_state(void); | 63 | extern void rcu_bh_force_quiescent_state(void); |
| 105 | extern void rcu_sched_force_quiescent_state(void); | 64 | extern void rcu_sched_force_quiescent_state(void); |
| 106 | 65 | ||
| 107 | #ifdef CONFIG_NO_HZ | ||
| 108 | void rcu_enter_nohz(void); | ||
| 109 | void rcu_exit_nohz(void); | ||
| 110 | #else /* CONFIG_NO_HZ */ | ||
| 111 | static inline void rcu_enter_nohz(void) | ||
| 112 | { | ||
| 113 | } | ||
| 114 | static inline void rcu_exit_nohz(void) | ||
| 115 | { | ||
| 116 | } | ||
| 117 | #endif /* CONFIG_NO_HZ */ | ||
| 118 | |||
| 119 | /* A context switch is a grace period for RCU-sched and RCU-bh. */ | 66 | /* A context switch is a grace period for RCU-sched and RCU-bh. */ |
| 120 | static inline int rcu_blocking_is_gp(void) | 67 | static inline int rcu_blocking_is_gp(void) |
| 121 | { | 68 | { |
