Commit d8ab29f8 authored by Paul E. McKenney's avatar Paul E. McKenney Committed by Paul E. McKenney

rcu: Remove one layer of abstraction from PROVE_RCU checking

Simplify things a bit by substituting the definitions of the single-line
rcu_read_acquire(), rcu_read_release(), rcu_read_acquire_bh(),
rcu_read_release_bh(), rcu_read_acquire_sched(), and
rcu_read_release_sched() functions at their call points.
Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: default avatarJosh Triplett <josh@joshtriplett.org>
parent 00f49e57
...@@ -250,41 +250,8 @@ static inline void rcu_lock_release(struct lockdep_map *map) ...@@ -250,41 +250,8 @@ static inline void rcu_lock_release(struct lockdep_map *map)
} }
extern struct lockdep_map rcu_lock_map; extern struct lockdep_map rcu_lock_map;
static inline void rcu_read_acquire(void)
{
rcu_lock_acquire(&rcu_lock_map);
}
static inline void rcu_read_release(void)
{
rcu_lock_release(&rcu_lock_map);
}
extern struct lockdep_map rcu_bh_lock_map; extern struct lockdep_map rcu_bh_lock_map;
static inline void rcu_read_acquire_bh(void)
{
rcu_lock_acquire(&rcu_bh_lock_map);
}
static inline void rcu_read_release_bh(void)
{
rcu_lock_release(&rcu_bh_lock_map);
}
extern struct lockdep_map rcu_sched_lock_map; extern struct lockdep_map rcu_sched_lock_map;
static inline void rcu_read_acquire_sched(void)
{
rcu_lock_acquire(&rcu_sched_lock_map);
}
static inline void rcu_read_release_sched(void)
{
rcu_lock_release(&rcu_sched_lock_map);
}
extern int debug_lockdep_rcu_enabled(void); extern int debug_lockdep_rcu_enabled(void);
/** /**
...@@ -364,12 +331,8 @@ static inline int rcu_read_lock_sched_held(void) ...@@ -364,12 +331,8 @@ static inline int rcu_read_lock_sched_held(void)
#else /* #ifdef CONFIG_DEBUG_LOCK_ALLOC */ #else /* #ifdef CONFIG_DEBUG_LOCK_ALLOC */
# define rcu_read_acquire() do { } while (0) # define rcu_lock_acquire(a) do { } while (0)
# define rcu_read_release() do { } while (0) # define rcu_lock_release(a) do { } while (0)
# define rcu_read_acquire_bh() do { } while (0)
# define rcu_read_release_bh() do { } while (0)
# define rcu_read_acquire_sched() do { } while (0)
# define rcu_read_release_sched() do { } while (0)
static inline int rcu_read_lock_held(void) static inline int rcu_read_lock_held(void)
{ {
...@@ -690,7 +653,7 @@ static inline void rcu_read_lock(void) ...@@ -690,7 +653,7 @@ static inline void rcu_read_lock(void)
{ {
__rcu_read_lock(); __rcu_read_lock();
__acquire(RCU); __acquire(RCU);
rcu_read_acquire(); rcu_lock_acquire(&rcu_lock_map);
} }
/* /*
...@@ -710,7 +673,7 @@ static inline void rcu_read_lock(void) ...@@ -710,7 +673,7 @@ static inline void rcu_read_lock(void)
*/ */
static inline void rcu_read_unlock(void) static inline void rcu_read_unlock(void)
{ {
rcu_read_release(); rcu_lock_release(&rcu_lock_map);
__release(RCU); __release(RCU);
__rcu_read_unlock(); __rcu_read_unlock();
} }
...@@ -731,7 +694,7 @@ static inline void rcu_read_lock_bh(void) ...@@ -731,7 +694,7 @@ static inline void rcu_read_lock_bh(void)
{ {
local_bh_disable(); local_bh_disable();
__acquire(RCU_BH); __acquire(RCU_BH);
rcu_read_acquire_bh(); rcu_lock_acquire(&rcu_bh_lock_map);
} }
/* /*
...@@ -741,7 +704,7 @@ static inline void rcu_read_lock_bh(void) ...@@ -741,7 +704,7 @@ static inline void rcu_read_lock_bh(void)
*/ */
static inline void rcu_read_unlock_bh(void) static inline void rcu_read_unlock_bh(void)
{ {
rcu_read_release_bh(); rcu_lock_release(&rcu_bh_lock_map);
__release(RCU_BH); __release(RCU_BH);
local_bh_enable(); local_bh_enable();
} }
...@@ -758,7 +721,7 @@ static inline void rcu_read_lock_sched(void) ...@@ -758,7 +721,7 @@ static inline void rcu_read_lock_sched(void)
{ {
preempt_disable(); preempt_disable();
__acquire(RCU_SCHED); __acquire(RCU_SCHED);
rcu_read_acquire_sched(); rcu_lock_acquire(&rcu_sched_lock_map);
} }
/* Used by lockdep and tracing: cannot be traced, cannot call lockdep. */ /* Used by lockdep and tracing: cannot be traced, cannot call lockdep. */
...@@ -775,7 +738,7 @@ static inline notrace void rcu_read_lock_sched_notrace(void) ...@@ -775,7 +738,7 @@ static inline notrace void rcu_read_lock_sched_notrace(void)
*/ */
static inline void rcu_read_unlock_sched(void) static inline void rcu_read_unlock_sched(void)
{ {
rcu_read_release_sched(); rcu_lock_release(&rcu_sched_lock_map);
__release(RCU_SCHED); __release(RCU_SCHED);
preempt_enable(); preempt_enable();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment