lkml.org 
[lkml]   [2006]   [Oct]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 06/14] uml: make UML_SETJMP always safe
    Date
    From: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>

    If enable is moved by GCC in a register its value may not be preserved after
    coming back there with longjmp(). So, mark it as volatile to prevent this; this
    is suggested (it seems) in info gcc, when it talks about -Wuninitialized. I
    re-read this and it seems to say something different, but I still believe this
    may be needed.

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
    ---

    arch/um/include/longjmp.h | 3 ++-
    1 files changed, 2 insertions(+), 1 deletions(-)

    diff --git a/arch/um/include/longjmp.h b/arch/um/include/longjmp.h
    index e93c6d3..e860bc5 100644
    --- a/arch/um/include/longjmp.h
    +++ b/arch/um/include/longjmp.h
    @@ -12,7 +12,8 @@ #define UML_LONGJMP(buf, val) do { \
    } while(0)

    #define UML_SETJMP(buf) ({ \
    - int n, enable; \
    + int n; \
    + volatile int enable; \
    enable = get_signals(); \
    n = setjmp(*buf); \
    if(n != 0) \
    Chiacchiera con i tuoi amici in tempo reale!
    http://it.yahoo.com/mail_it/foot/*http://it.messenger.yahoo.com
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-10-05 23:45    [W:0.019 / U:29.996 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site