sh: Fixup __raw_read_trylock().
generic__raw_read_trylock() was broken, fix up the __raw_read_trylock() implementation for something sensible. Taken from m32r, which has the same use cases. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
2914d4da17
commit
fac99d9746
1 changed files with 8 additions and 1 deletions
|
@ -88,7 +88,14 @@ static inline void __raw_write_unlock(raw_rwlock_t *rw)
|
|||
__raw_spin_unlock(&rw->lock);
|
||||
}
|
||||
|
||||
#define __raw_read_trylock(lock) generic__raw_read_trylock(lock)
|
||||
static inline int __raw_read_trylock(raw_rwlock_t *lock)
|
||||
{
|
||||
atomic_t *count = (atomic_t*)lock;
|
||||
if (atomic_dec_return(count) >= 0)
|
||||
return 1;
|
||||
atomic_inc(count);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int __raw_write_trylock(raw_rwlock_t *rw)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue