lkml.org 
[lkml]   [2016]   [Jul]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.6 190/203] s390: fix test_fp_ctl inline assembly contraints
    Date
    4.6-stable review patch.  If anyone has any objections, please let me know.

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

    From: Martin Schwidefsky <schwidefsky@de.ibm.com>

    commit bcf4dd5f9ee096bd1510f838dd4750c35df4e38b upstream.

    The test_fp_ctl function is used to test if a given value is a valid
    floating-point control. The inline assembly in test_fp_ctl uses an
    incorrect constraint for the 'orig_fpc' variable. If the compiler
    chooses the same register for 'fpc' and 'orig_fpc' the test_fp_ctl()
    function always returns true. This allows user space to trigger
    kernel oopses with invalid floating-point control values on the
    signal stack.

    This problem has been introduced with git commit 4725c86055f5bbdcdf
    "s390: fix save and restore of the floating-point-control register"

    Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/s390/include/asm/fpu/api.h | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/arch/s390/include/asm/fpu/api.h
    +++ b/arch/s390/include/asm/fpu/api.h
    @@ -22,7 +22,7 @@ static inline int test_fp_ctl(u32 fpc)
    " la %0,0\n"
    "1:\n"
    EX_TABLE(0b,1b)
    - : "=d" (rc), "=d" (orig_fpc)
    + : "=d" (rc), "=&d" (orig_fpc)
    : "d" (fpc), "0" (-EINVAL));
    return rc;
    }

    \
     
     \ /
      Last update: 2016-07-26 00:21    [W:4.089 / U:0.628 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site