[lkml]   [2010]   [Aug]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[50/91] sparc64: Fix rwsem constant bug leading to hangs.
    2.6.34-stable review patch.  If anyone has any objections, please let us know.


    From: David S. Miller <>

    [ 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 <>
    Signed-off-by: Greg Kroah-Hartman <>
    arch/sparc/include/asm/rwsem-const.h | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/arch/sparc/include/asm/rwsem-const.h
    +++ b/arch/sparc/include/asm/rwsem-const.h
    @@ -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)

     \ /
      Last update: 2010-08-25 01:37    [W:0.023 / U:3.772 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site