lkml.org 
[lkml]   [2017]   [Aug]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.12 105/106] sparc64: Fix exception handling in UltraSPARC-III memcpy.
    Date
    4.12-stable review patch.  If anyone has any objections, please let me know.

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

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


    [ Upstream commit 0ede1c401332173ab0693121dc6cde04a4dbf131 ]

    Mikael Pettersson reported that some test programs in the strace-4.18
    testsuite cause an OOPS.

    After some debugging it turns out that garbage values are returned
    when an exception occurs, causing the fixup memset() to be run with
    bogus arguments.

    The problem is that two of the exception handler stubs write the
    successfully copied length into the wrong register.

    Fixes: ee841d0aff64 ("sparc64: Convert U3copy_{from,to}_user to accurate exception reporting.")
    Reported-by: Mikael Pettersson <mikpelinux@gmail.com>
    Tested-by: Mikael Pettersson <mikpelinux@gmail.com>
    Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    arch/sparc/lib/U3memcpy.S | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/arch/sparc/lib/U3memcpy.S
    +++ b/arch/sparc/lib/U3memcpy.S
    @@ -145,13 +145,13 @@ ENDPROC(U3_retl_o2_plus_GS_plus_0x08)
    ENTRY(U3_retl_o2_and_7_plus_GS)
    and %o2, 7, %o2
    retl
    - add %o2, GLOBAL_SPARE, %o2
    + add %o2, GLOBAL_SPARE, %o0
    ENDPROC(U3_retl_o2_and_7_plus_GS)
    ENTRY(U3_retl_o2_and_7_plus_GS_plus_8)
    add GLOBAL_SPARE, 8, GLOBAL_SPARE
    and %o2, 7, %o2
    retl
    - add %o2, GLOBAL_SPARE, %o2
    + add %o2, GLOBAL_SPARE, %o0
    ENDPROC(U3_retl_o2_and_7_plus_GS_plus_8)
    #endif


    \
     
     \ /
      Last update: 2017-08-09 18:59    [W:3.109 / U:0.752 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site