lkml.org 
[lkml]   [2019]   [Mar]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.0 38/46] xtensa: fix get_wchan
    Date
    5.0-stable review patch.  If anyone has any objections, please let me know.

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

    From: Max Filippov <jcmvbkbc@gmail.com>

    commit d90b88fd3653f1fb66ecc6571b860d5a5749fa56 upstream.

    Stack unwinding is implemented incorrectly in xtensa get_wchan: instead
    of extracting a0 and a1 registers from the spill location under the
    stack pointer it extracts a word pointed to by the stack pointer and
    subtracts 4 or 3 from it.

    Cc: stable@vger.kernel.org
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/xtensa/kernel/process.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/arch/xtensa/kernel/process.c
    +++ b/arch/xtensa/kernel/process.c
    @@ -321,8 +321,8 @@ unsigned long get_wchan(struct task_stru

    /* Stack layout: sp-4: ra, sp-3: sp' */

    - pc = MAKE_PC_FROM_RA(*(unsigned long*)sp - 4, sp);
    - sp = *(unsigned long *)sp - 3;
    + pc = MAKE_PC_FROM_RA(SPILL_SLOT(sp, 0), sp);
    + sp = SPILL_SLOT(sp, 1);
    } while (count++ < 16);
    return 0;
    }

    \
     
     \ /
      Last update: 2019-03-08 13:54    [W:4.095 / U:0.216 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site