Commit a8589849 authored by William Lee Irwin III's avatar William Lee Irwin III Committed by Linus Torvalds

[PATCH] document wake_up_bit()'s requirement for preceding memory barriers

Document the requirement to use a memory barrier prior to wake_up_bit().
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 9659cc89
...@@ -221,6 +221,13 @@ EXPORT_SYMBOL(__wake_up_bit); ...@@ -221,6 +221,13 @@ EXPORT_SYMBOL(__wake_up_bit);
* is the part of the hashtable's accessor API that wakes up waiters * is the part of the hashtable's accessor API that wakes up waiters
* on a bit. For instance, if one were to have waiters on a bitflag, * on a bit. For instance, if one were to have waiters on a bitflag,
* one would call wake_up_bit() after clearing the bit. * one would call wake_up_bit() after clearing the bit.
*
* In order for this to function properly, as it uses waitqueue_active()
* internally, some kind of memory barrier must be done prior to calling
* this. Typically, this will be smp_mb__after_clear_bit(), but in some
* cases where bitflags are manipulated non-atomically under a lock, one
* may need to use a less regular barrier, such fs/inode.c's smp_mb(),
* because spin_unlock() does not guarantee a memory barrier.
*/ */
void fastcall wake_up_bit(void *word, int bit) void fastcall wake_up_bit(void *word, int bit)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment