diff options
| author | 2007-02-10 01:45:45 -0800 | |
|---|---|---|
| committer | 2007-02-11 10:51:31 -0800 | |
| commit | 78ba2faf71c63990cba9997f18cf1d610e06e3f2 (patch) | |
| tree | 8cf435b8ade77c358dc3c4cc6a3349d65702170f /lib/string.c | |
| parent | [PATCH] add an RCU version of list splicing (diff) | |
| download | wireguard-linux-78ba2faf71c63990cba9997f18cf1d610e06e3f2.tar.xz wireguard-linux-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 <minyard@acm.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'lib/string.c')
0 files changed, 0 insertions, 0 deletions
