aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/rcupdate.h21
-rw-r--r--include/linux/rcupreempt.h4
-rw-r--r--include/linux/rcutree.h8
3 files changed, 23 insertions, 10 deletions
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
index 3c89d6a2591f..e920f0fd59d8 100644
--- a/include/linux/rcupdate.h
+++ b/include/linux/rcupdate.h
@@ -157,17 +157,28 @@ extern int rcu_scheduler_active;
157 * - call_rcu_sched() and rcu_barrier_sched() 157 * - call_rcu_sched() and rcu_barrier_sched()
158 * on the write-side to insure proper synchronization. 158 * on the write-side to insure proper synchronization.
159 */ 159 */
160#define rcu_read_lock_sched() preempt_disable() 160static inline void rcu_read_lock_sched(void)
161#define rcu_read_lock_sched_notrace() preempt_disable_notrace() 161{
162 preempt_disable();
163}
164static inline void rcu_read_lock_sched_notrace(void)
165{
166 preempt_disable_notrace();
167}
162 168
163/* 169/*
164 * rcu_read_unlock_sched - marks the end of a RCU-classic critical section 170 * rcu_read_unlock_sched - marks the end of a RCU-classic critical section
165 * 171 *
166 * See rcu_read_lock_sched for more information. 172 * See rcu_read_lock_sched for more information.
167 */ 173 */
168#define rcu_read_unlock_sched() preempt_enable() 174static inline void rcu_read_unlock_sched(void)
169#define rcu_read_unlock_sched_notrace() preempt_enable_notrace() 175{
170 176 preempt_enable();
177}
178static inline void rcu_read_unlock_sched_notrace(void)
179{
180 preempt_enable_notrace();
181}
171 182
172 183
173/** 184/**
diff --git a/include/linux/rcupreempt.h b/include/linux/rcupreempt.h
index f164ac9b7807..2963f080e48d 100644
--- a/include/linux/rcupreempt.h
+++ b/include/linux/rcupreempt.h
@@ -40,8 +40,8 @@
40#include <linux/cpumask.h> 40#include <linux/cpumask.h>
41#include <linux/seqlock.h> 41#include <linux/seqlock.h>
42 42
43extern void rcu_qsctr_inc(int cpu); 43extern void rcu_sched_qs(int cpu);
44static inline void rcu_bh_qsctr_inc(int cpu) { } 44static inline void rcu_bh_qs(int cpu) { }
45 45
46/* 46/*
47 * Someone might want to pass call_rcu_bh as a function pointer. 47 * Someone might want to pass call_rcu_bh as a function pointer.
diff --git a/include/linux/rcutree.h b/include/linux/rcutree.h
index e37d5e2a8353..a0852d0d915b 100644
--- a/include/linux/rcutree.h
+++ b/include/linux/rcutree.h
@@ -30,8 +30,8 @@
30#ifndef __LINUX_RCUTREE_H 30#ifndef __LINUX_RCUTREE_H
31#define __LINUX_RCUTREE_H 31#define __LINUX_RCUTREE_H
32 32
33extern void rcu_qsctr_inc(int cpu); 33extern void rcu_sched_qs(int cpu);
34extern void rcu_bh_qsctr_inc(int cpu); 34extern void rcu_bh_qs(int cpu);
35 35
36extern int rcu_pending(int cpu); 36extern int rcu_pending(int cpu);
37extern int rcu_needs_cpu(int cpu); 37extern int rcu_needs_cpu(int cpu);
@@ -73,7 +73,8 @@ static inline void __rcu_read_unlock_bh(void)
73 73
74#define __synchronize_sched() synchronize_rcu() 74#define __synchronize_sched() synchronize_rcu()
75 75
76#define call_rcu_sched(head, func) call_rcu(head, func) 76extern void call_rcu_sched(struct rcu_head *head,
77 void (*func)(struct rcu_head *rcu));
77 78
78static inline void synchronize_rcu_expedited(void) 79static inline void synchronize_rcu_expedited(void)
79{ 80{
@@ -91,6 +92,7 @@ extern void rcu_restart_cpu(int cpu);
91 92
92extern long rcu_batches_completed(void); 93extern long rcu_batches_completed(void);
93extern long rcu_batches_completed_bh(void); 94extern long rcu_batches_completed_bh(void);
95extern long rcu_batches_completed_sched(void);
94 96
95static inline void rcu_init_sched(void) 97static inline void rcu_init_sched(void)
96{ 98{