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

Commit ef201beb authored by David S. Miller's avatar David S. Miller
Browse files

sparc64: Fix rwsem constant bug leading to hangs.



As noticed by Linus, it is critical that some of the
rwsem constants be signed.  Yet, hex constants are
unsigned unless explicitly casted or negated.

The most critical one is RWSEM_WAITING_BIAS.

This bug was exacerbated by commit
424acaae ("rwsem: wake queued readers
when writer blocks on active read lock")

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 8e8073a4
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@
#define RWSEM_UNLOCKED_VALUE		0x00000000
#define RWSEM_ACTIVE_BIAS		0x00000001
#define RWSEM_ACTIVE_MASK		0x0000ffff
#define RWSEM_WAITING_BIAS		0xffff0000
#define RWSEM_WAITING_BIAS		(-0x00010000)
#define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
#define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)