diff options
Diffstat (limited to 'include/linux/rcupdate.h')
| -rw-r--r-- | include/linux/rcupdate.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index b758ce17b309..ddcc7826d907 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h | |||
| @@ -80,6 +80,7 @@ extern void do_trace_rcu_torture_read(char *rcutorturename, | |||
| 80 | #define UINT_CMP_LT(a, b) (UINT_MAX / 2 < (a) - (b)) | 80 | #define UINT_CMP_LT(a, b) (UINT_MAX / 2 < (a) - (b)) |
| 81 | #define ULONG_CMP_GE(a, b) (ULONG_MAX / 2 >= (a) - (b)) | 81 | #define ULONG_CMP_GE(a, b) (ULONG_MAX / 2 >= (a) - (b)) |
| 82 | #define ULONG_CMP_LT(a, b) (ULONG_MAX / 2 < (a) - (b)) | 82 | #define ULONG_CMP_LT(a, b) (ULONG_MAX / 2 < (a) - (b)) |
| 83 | #define ulong2long(a) (*(long *)(&(a))) | ||
| 83 | 84 | ||
| 84 | /* Exported common interfaces */ | 85 | /* Exported common interfaces */ |
| 85 | 86 | ||
| @@ -639,6 +640,15 @@ static inline void rcu_preempt_sleep_check(void) | |||
| 639 | 640 | ||
| 640 | #define rcu_dereference_raw(p) rcu_dereference_check(p, 1) /*@@@ needed? @@@*/ | 641 | #define rcu_dereference_raw(p) rcu_dereference_check(p, 1) /*@@@ needed? @@@*/ |
| 641 | 642 | ||
| 643 | /* | ||
| 644 | * The tracing infrastructure traces RCU (we want that), but unfortunately | ||
| 645 | * some of the RCU checks causes tracing to lock up the system. | ||
| 646 | * | ||
| 647 | * The tracing version of rcu_dereference_raw() must not call | ||
| 648 | * rcu_read_lock_held(). | ||
| 649 | */ | ||
| 650 | #define rcu_dereference_raw_notrace(p) __rcu_dereference_check((p), 1, __rcu) | ||
| 651 | |||
| 642 | /** | 652 | /** |
| 643 | * rcu_access_index() - fetch RCU index with no dereferencing | 653 | * rcu_access_index() - fetch RCU index with no dereferencing |
| 644 | * @p: The index to read | 654 | * @p: The index to read |
| @@ -999,4 +1009,11 @@ static inline notrace void rcu_read_unlock_sched_notrace(void) | |||
| 999 | #define kfree_rcu(ptr, rcu_head) \ | 1009 | #define kfree_rcu(ptr, rcu_head) \ |
| 1000 | __kfree_rcu(&((ptr)->rcu_head), offsetof(typeof(*(ptr)), rcu_head)) | 1010 | __kfree_rcu(&((ptr)->rcu_head), offsetof(typeof(*(ptr)), rcu_head)) |
| 1001 | 1011 | ||
| 1012 | #ifdef CONFIG_RCU_NOCB_CPU | ||
| 1013 | extern bool rcu_is_nocb_cpu(int cpu); | ||
| 1014 | #else | ||
| 1015 | static inline bool rcu_is_nocb_cpu(int cpu) { return false; } | ||
| 1016 | #endif /* #else #ifdef CONFIG_RCU_NOCB_CPU */ | ||
| 1017 | |||
| 1018 | |||
| 1002 | #endif /* __LINUX_RCUPDATE_H */ | 1019 | #endif /* __LINUX_RCUPDATE_H */ |
