diff options
| author | Corey Minyard <[email protected]> | 2007-02-10 09:45:45 +0000 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2007-02-11 18:51:31 +0000 |
| commit | 78ba2faf71c63990cba9997f18cf1d610e06e3f2 (patch) | |
| tree | 8cf435b8ade77c358dc3c4cc6a3349d65702170f /lib/parser.c | |
| parent | [PATCH] add an RCU version of list splicing (diff) | |
| download | kernel-78ba2faf71c63990cba9997f18cf1d610e06e3f2.tar.gz kernel-78ba2faf71c63990cba9997f18cf1d610e06e3f2.zip | |
[PATCH] IPMI: Fix some RCU problems
Fix some RCU problem pointed out by Paul McKenney of IBM. These are:
The wholesale move of the command receivers list into a new list was not
safe because the list will point to the new tail during a traversal, so the
traversal will never end on a reader if this happens during a read.
Memory barriers were needed to handle proper ordering of the setting of the
IPMI interface as valid. Readers might not see proper ordering of data
otherwise.
In ipmi_smi_watcher_register(), the use of the _rcu suffix on the list is
unnecessary.
This require the list_splice_init_rcu() patch previously posted.
Signed-off-by: Corey Minyard <[email protected]>
Cc: Paul E. McKenney <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'lib/parser.c')
0 files changed, 0 insertions, 0 deletions
