NULLing the RCU_NEXT_TAIL pointer was a clever way to save a byte, but forward-progress considerations would require that this pointer be both NULL and non-NULL, which, absent a quantum-computer port of the Linux kernel, simply won't happen. This commit therefore creates as separate ->enabled flag to replace the current NULL checks. [ paulmck: Add include files per 0day test robot and -next. ] Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
Showing the changes to include/linux (1 of 4 files). Show all
Unified · Split
| @@ -14,6 +14,9 @@ · 13 unmodified lines | ||
| 14 | 14 | #ifndef __INCLUDE_LINUX_RCU_SEGCBLIST_H |
| 15 | 15 | #define __INCLUDE_LINUX_RCU_SEGCBLIST_H |
| 16 | 16 | |
| 17 | +#include <linux/types.h> | |
| 18 | +#include <linux/atomic.h> | |
| 19 | + | |
| 17 | 20 | /* Simple unsegmented callback lists. */ |
| 18 | 21 | struct rcu_cblist { |
| 19 | 22 | struct rcu_head *head; |
| @@ -67,6 +70,7 @@ struct rcu_segcblist { · 47 unmodified lines | ||
| 67 | 70 | unsigned long gp_seq[RCU_CBLIST_NSEGS]; |
| 68 | 71 | long len; |
| 69 | 72 | long len_lazy; |
| 73 | + u8 enabled; | |
| 70 | 74 | }; |
| 71 | 75 | |
| 72 | 76 | #define RCU_SEGCBLIST_INITIALIZER(n) \ |