Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fac99d97 authored by Paul Mundt's avatar Paul Mundt
Browse files

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: default avatarPaul Mundt <lethal@linux-sh.org>
parent 2914d4da
Loading
Loading
Loading
Loading
+8 −1
Original line number Original line Diff line number Diff line
@@ -88,7 +88,14 @@ static inline void __raw_write_unlock(raw_rwlock_t *rw)
	__raw_spin_unlock(&rw->lock);
	__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)
static inline int __raw_write_trylock(raw_rwlock_t *rw)
{
{