lkml.org 
[lkml]   [2012]   [Dec]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[ 35/89] m68k: fix sigset_t accessor functions
    3.2-stable review patch.  If anyone has any objections, please let me know.

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

    From: Andreas Schwab <schwab@linux-m68k.org>

    commit 34fa78b59c52d1db3513db4c1a999db26b2e9ac2 upstream.

    The sigaddset/sigdelset/sigismember functions that are implemented with
    bitfield insn cannot allow the sigset argument to be placed in a data
    register since the sigset is wider than 32 bits. Remove the "d"
    constraint from the asm statements.

    The effect of the bug is that sending RT signals does not work, the signal
    number is truncated modulo 32.

    Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    arch/m68k/include/asm/signal.h | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    diff --git a/arch/m68k/include/asm/signal.h b/arch/m68k/include/asm/signal.h
    index 67e489d..2df26b5 100644
    --- a/arch/m68k/include/asm/signal.h
    +++ b/arch/m68k/include/asm/signal.h
    @@ -41,7 +41,7 @@ struct k_sigaction {
    static inline void sigaddset(sigset_t *set, int _sig)
    {
    asm ("bfset %0{%1,#1}"
    - : "+od" (*set)
    + : "+o" (*set)
    : "id" ((_sig - 1) ^ 31)
    : "cc");
    }
    @@ -49,7 +49,7 @@ static inline void sigaddset(sigset_t *set, int _sig)
    static inline void sigdelset(sigset_t *set, int _sig)
    {
    asm ("bfclr %0{%1,#1}"
    - : "+od" (*set)
    + : "+o" (*set)
    : "id" ((_sig - 1) ^ 31)
    : "cc");
    }
    @@ -65,7 +65,7 @@ static inline int __gen_sigismember(sigset_t *set, int _sig)
    int ret;
    asm ("bfextu %1{%2,#1},%0"
    : "=d" (ret)
    - : "od" (*set), "id" ((_sig-1) ^ 31)
    + : "o" (*set), "id" ((_sig-1) ^ 31)
    : "cc");
    return ret;
    }



    \
     
     \ /
      Last update: 2012-12-03 16:21    [W:4.644 / U:0.088 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site