History

Merge branches 'doc.2020.02.27a', 'fixes.2020.03.21a', 'kfree_rcu.2020.02.20a', 'locktorture.2020.02.20a', 'ovld.2020.02.20a', 'rcu-tasks.2020.02.20a', 'srcu.2020.02.20a' and 'torture.2020.02.20a' into HEAD

doc.2020.02.27a: Documentation updates. fixes.2020.03.21a: Miscellaneous fixes. kfree_rcu.2020.02.20a: Updates to kfree_rcu(). locktorture.2020.02.20a: Lock torture-test updates. ovld.2020.02.20a: Updates to callback-overload handling. rcu-tasks.2020.02.20a: RCU-tasks updates. srcu.2020.02.20a: SRCU updates. torture.2020.02.20a: Torture-test updates.

Paul E. McKenney committed 6 years ago

Commit aa93ec68 parents 8149b5c 127e298 6137079 28e09a2 b692dc4 90ba11b 7104260 a14493529 files · +644 −203Browse files

Showing the changes to include/linux (4 of 29 files). Show all

Unified · Split

4 files
  1. include/linux/rculist.h +2 −2
  2. include/linux/rcutiny.h +1 −0
  3. include/linux/rcutree.h +1 −0
  4. include/linux/timer.h +1 −1
include/linux/rculist.h+2−2
@@ -60,9 +60,9 @@ static inline void INIT_LIST_HEAD_RCU(struct list_head *list) · 59 unmodified lines
6060 #define __list_check_rcu(dummy, cond, extra...) \
6161 ({ \
6262 check_arg_count_one(extra); \
63− RCU_LOCKDEP_WARN(!cond && !rcu_read_lock_any_held(), \
63+ RCU_LOCKDEP_WARN(!(cond) && !rcu_read_lock_any_held(), \
6464 "RCU-list traversed in non-reader section!"); \
65− })
65+ })
6666 #else
6767 #define __list_check_rcu(dummy, cond, extra...) \
6868 ({ check_arg_count_one(extra); })
include/linux/rcutiny.h+1−0
@@ -83,6 +83,7 @@ void rcu_scheduler_starting(void); · 82 unmodified lines
8383 static inline void rcu_scheduler_starting(void) { }
8484 #endif /* #else #ifndef CONFIG_SRCU */
8585 static inline void rcu_end_inkernel_boot(void) { }
86+static inline bool rcu_inkernel_boot_has_ended(void) { return true; }
8687 static inline bool rcu_is_watching(void) { return true; }
8788 static inline void rcu_momentary_dyntick_idle(void) { }
8889 static inline void kfree_rcu_scheduler_running(void) { }
include/linux/rcutree.h+1−0
@@ -54,6 +54,7 @@ void exit_rcu(void); · 53 unmodified lines
5454 void rcu_scheduler_starting(void);
5555 extern int rcu_scheduler_active __read_mostly;
5656 void rcu_end_inkernel_boot(void);
57+bool rcu_inkernel_boot_has_ended(void);
5758 bool rcu_is_watching(void);
5859 #ifndef CONFIG_PREEMPTION
5960 void rcu_all_qs(void);
include/linux/timer.h+1−1
@@ -164,7 +164,7 @@ static inline void destroy_timer_on_stack(struct timer_list *timer) { } · 163 unmodified lines
164164 */
165165 static inline int timer_pending(const struct timer_list * timer)
166166 {
167− return timer->entry.pprev != NULL;
167+ return !hlist_unhashed_lockless(&timer->entry);
168168 }
169169
170170 extern void add_timer_on(struct timer_list *timer, int cpu);