|
@@ -371,41 +371,7 @@ extern struct lockdep_map rcu_sched_lock_map;
|
|
|
extern struct lockdep_map rcu_callback_map;
|
|
|
int debug_lockdep_rcu_enabled(void);
|
|
|
|
|
|
-/**
|
|
|
- * rcu_read_lock_held() - might we be in RCU read-side critical section?
|
|
|
- *
|
|
|
- * If CONFIG_DEBUG_LOCK_ALLOC is selected, returns nonzero iff in an RCU
|
|
|
- * read-side critical section. In absence of CONFIG_DEBUG_LOCK_ALLOC,
|
|
|
- * this assumes we are in an RCU read-side critical section unless it can
|
|
|
- * prove otherwise. This is useful for debug checks in functions that
|
|
|
- * require that they be called within an RCU read-side critical section.
|
|
|
- *
|
|
|
- * Checks debug_lockdep_rcu_enabled() to prevent false positives during boot
|
|
|
- * and while lockdep is disabled.
|
|
|
- *
|
|
|
- * Note that rcu_read_lock() and the matching rcu_read_unlock() must
|
|
|
- * occur in the same context, for example, it is illegal to invoke
|
|
|
- * rcu_read_unlock() in process context if the matching rcu_read_lock()
|
|
|
- * was invoked from within an irq handler.
|
|
|
- *
|
|
|
- * Note that rcu_read_lock() is disallowed if the CPU is either idle or
|
|
|
- * offline from an RCU perspective, so check for those as well.
|
|
|
- */
|
|
|
-static inline int rcu_read_lock_held(void)
|
|
|
-{
|
|
|
- if (!debug_lockdep_rcu_enabled())
|
|
|
- return 1;
|
|
|
- if (!rcu_is_watching())
|
|
|
- return 0;
|
|
|
- if (!rcu_lockdep_current_cpu_online())
|
|
|
- return 0;
|
|
|
- return lock_is_held(&rcu_lock_map);
|
|
|
-}
|
|
|
-
|
|
|
-/*
|
|
|
- * rcu_read_lock_bh_held() is defined out of line to avoid #include-file
|
|
|
- * hell.
|
|
|
- */
|
|
|
+int rcu_read_lock_held(void);
|
|
|
int rcu_read_lock_bh_held(void);
|
|
|
|
|
|
/**
|