aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/rcupdate.h
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2010-08-13 19:16:25 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2010-08-20 12:00:13 -0400
commita3dc3fb161f9b4066c0fce22db72638af8baf83b (patch)
treee41a30edd7e4965807b199da7637a6d6e44d4ed1 /include/linux/rcupdate.h
parent53d84e004d5e8c018be395c4330dc72fd60bd13e (diff)
rcu: repair code-duplication FIXMEs
Combine the duplicate definitions of ULONG_CMP_GE(), ULONG_CMP_LT(), and rcu_preempt_depth() into include/linux/rcupdate.h. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'include/linux/rcupdate.h')
-rw-r--r--include/linux/rcupdate.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
index d7af96ef6fcf..325bad7bbca9 100644
--- a/include/linux/rcupdate.h
+++ b/include/linux/rcupdate.h
@@ -47,6 +47,9 @@
47extern int rcutorture_runnable; /* for sysctl */ 47extern int rcutorture_runnable; /* for sysctl */
48#endif /* #ifdef CONFIG_RCU_TORTURE_TEST */ 48#endif /* #ifdef CONFIG_RCU_TORTURE_TEST */
49 49
50#define ULONG_CMP_GE(a, b) (ULONG_MAX / 2 >= (a) - (b))
51#define ULONG_CMP_LT(a, b) (ULONG_MAX / 2 < (a) - (b))
52
50/** 53/**
51 * struct rcu_head - callback structure for use with RCU 54 * struct rcu_head - callback structure for use with RCU
52 * @next: next update requests in a list 55 * @next: next update requests in a list
@@ -66,6 +69,18 @@ extern int sched_expedited_torture_stats(char *page);
66/* Internal to kernel */ 69/* Internal to kernel */
67extern void rcu_init(void); 70extern void rcu_init(void);
68 71
72#ifdef CONFIG_PREEMPT_RCU
73
74/*
75 * Defined as a macro as it is a very low level header included from
76 * areas that don't even know about current. This gives the rcu_read_lock()
77 * nesting depth, but makes sense only if CONFIG_PREEMPT_RCU -- in other
78 * types of kernel builds, the rcu_read_lock() nesting depth is unknowable.
79 */
80#define rcu_preempt_depth() (current->rcu_read_lock_nesting)
81
82#endif /* #ifdef CONFIG_PREEMPT_RCU */
83
69#if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU) 84#if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU)
70#include <linux/rcutree.h> 85#include <linux/rcutree.h>
71#elif defined(CONFIG_TINY_RCU) || defined(CONFIG_TINY_PREEMPT_RCU) 86#elif defined(CONFIG_TINY_RCU) || defined(CONFIG_TINY_PREEMPT_RCU)