]> git.karo-electronics.de Git - karo-tx-linux.git/commit
sparc64: Fix rwsem constant bug leading to hangs.
authorDavid S. Miller <davem@davemloft.net>
Wed, 18 Aug 2010 00:09:53 +0000 (17:09 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 26 Aug 2010 23:45:57 +0000 (16:45 -0700)
commite214c09dc0c3a34b543cbcbacd712c5ba1a1d76c
tree0557c9f416ddd21fbf5df3fd060cd4a9721a470c
parentef0b95594718adf4de1e8fb8fa4bce18039a5577
sparc64: Fix rwsem constant bug leading to hangs.

[ Upstream commit ef201bebe5afc91a2b99b45dacc8c6dd88ca9e58 ]

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
424acaaeb3a3932d64a9b4bd59df6cf72c22d8f3 ("rwsem: wake queued readers
when writer blocks on active read lock")

Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/sparc/include/asm/rwsem-const.h