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

    ------------------


    From: David S. Miller <davem@davemloft.net>

    [ 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 | 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)
    #define RWSEM_ACTIVE_READ_BIAS RWSEM_ACTIVE_BIAS
    #define RWSEM_ACTIVE_WRITE_BIAS (RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)




    \
     
     \ /
      Last update: 2010-08-25 01:17    [W:4.127 / U:0.460 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site