__test_and_clear_bit - Clear a bit and return its old value
int __test_and_clear_bit (int nr, volatile unsigned long * addr);
nr Bit to clear addr Address to count from
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.