diff options
| author | Dipankar Sarma <dipankar@in.ibm.com> | 2004-08-22 22:57:30 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-08-22 22:57:30 -0700 |
| commit | f0f4d6e41008746f51db2c795469e1707e516672 (patch) | |
| tree | 3a2e58897a1bdfc8bb4bb19027108d5e6d9de490 /include/linux | |
| parent | bcce63134d465edc461f81ef23627cde4227e05a (diff) | |
[PATCH] RCU - cpu offline fix
This fixes the RCU cpu offline code which was broken by singly-linked RCU
changes. Nathan pointed out the problems and submitted a patch for this.
This is an optimal fix - no need to iterate through the list of callbacks,
just use the tail pointers and attach the list from the dead cpu.
Signed-off-by: Nathan Lynch <nathanl@austin.ibm.com>
Signed-off-by: Dipankar Sarma <dipankar@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/rcupdate.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index 10c4b8f24f08..226ce765c031 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h @@ -98,6 +98,7 @@ struct rcu_data { struct rcu_head *nxtlist; struct rcu_head **nxttail; struct rcu_head *curlist; + struct rcu_head **curtail; }; DECLARE_PER_CPU(struct rcu_data, rcu_data); @@ -111,6 +112,7 @@ extern struct rcu_ctrlblk rcu_ctrlblk; #define RCU_nxtlist(cpu) (per_cpu(rcu_data, (cpu)).nxtlist) #define RCU_curlist(cpu) (per_cpu(rcu_data, (cpu)).curlist) #define RCU_nxttail(cpu) (per_cpu(rcu_data, (cpu)).nxttail) +#define RCU_curtail(cpu) (per_cpu(rcu_data, (cpu)).curtail) static inline int rcu_pending(int cpu) { |
