wake_up_bit — wake up a waiter on a bit
void wake_up_bit ( | void * word, |
int bit) ; |
word
the word being waited on, a kernel virtual address
bit
the bit of the word being waited on
There is a standard hashed waitqueue table for generic use. This
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,
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_atomic
, 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.