.\" This manpage has been automatically generated by docbook2man
.\" from a DocBook document. This tool can be found at:
.\"
.\" Please send any bug reports, improvements, comments, patches,
.\" etc. to Steve Cheng .
.TH "WAKE_UP_BIT" "9" "09 October 2005" "" ""
.SH NAME
wake_up_bit \- wake up a waiter on a bit
.SH SYNOPSIS
"SYNOPSIS"
.sp
\fB
.sp
void fastcall wake_up_bit (void * \fIword\fB, int \fIbit\fB);
\fR
.SH "ARGUMENTS"
.TP
\fB\fIword\fB\fR
the word being waited on, a kernel virtual address
.TP
\fB\fIbit\fB\fR
the bit of the word being waited on
.SH "DESCRIPTION"
.PP
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 \fBwake_up_bit\fR after clearing the bit.
.PP
In order for this to function properly, as it uses \fBwaitqueue_active\fR
internally, some kind of memory barrier must be done prior to calling
this. Typically, this will be \fBsmp_mb__after_clear_bit\fR, 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 \fBsmp_mb\fR,
because \fBspin_unlock\fR does not guarantee a memory barrier.