RWSEM_WRITER_LOCKED
WARN_ON(!(atomic_long_read(&sem->count) & RWSEM_WRITER_LOCKED));
(rcnt > 1) && !(count & RWSEM_WRITER_LOCKED))
if (!(count & (RWSEM_WRITER_LOCKED | RWSEM_FLAG_HANDOFF))) {
#define RWSEM_WRITER_MASK RWSEM_WRITER_LOCKED
tmp = atomic_long_fetch_add_release(-RWSEM_WRITER_LOCKED, &sem->count);
-RWSEM_WRITER_LOCKED+RWSEM_READER_BIAS, &sem->count);
if (atomic_long_try_cmpxchg_acquire(&sem->count, &tmp, RWSEM_WRITER_LOCKED)) {
new |= RWSEM_WRITER_LOCKED;
count | RWSEM_WRITER_LOCKED)) {