Provided by: linux-doc-2.6.15_2.6.15-23.39_all bug

NAME

       __test_and_clear_bit - Clear a bit and return its old value

SYNOPSIS

       int __test_and_clear_bit  (int nr, volatile unsigned long * addr);

ARGUMENTS

       nr     Bit to clear

       addr   Address to count from

DESCRIPTION

       This  operation  is non-atomic and can be reordered. If two examples of
       this operation race, one can appear to succeed but actually  fail.  You
       must protect multiple accesses with a lock.