lkml.org 
[lkml]   [2020]   [Dec]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 392/717] powerpc/sstep: Emulate prefixed instructions only when CPU_FTR_ARCH_31 is set
    Date
    From: Balamuruhan S <bala24@linux.ibm.com>

    [ Upstream commit ef6879f8c8053cc3b493f400a06d452d7fb13650 ]

    Unconditional emulation of prefixed instructions will allow
    emulation of them on Power10 predecessors which might cause
    issues. Restrict that.

    Fixes: 3920742b92f5 ("powerpc sstep: Add support for prefixed fixed-point arithmetic")
    Fixes: 50b80a12e4cc ("powerpc sstep: Add support for prefixed load/stores")
    Signed-off-by: Balamuruhan S <bala24@linux.ibm.com>
    Signed-off-by: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
    Reviewed-by: Sandipan Das <sandipan@linux.ibm.com>
    Reviewed-by: Daniel Axtens <dja@axtens.net>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20201011050908.72173-2-ravi.bangoria@linux.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/powerpc/lib/sstep.c | 6 ++++++
    1 file changed, 6 insertions(+)

    diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
    index 855457ed09b54..bf2cd3d42125d 100644
    --- a/arch/powerpc/lib/sstep.c
    +++ b/arch/powerpc/lib/sstep.c
    @@ -1346,6 +1346,9 @@ int analyse_instr(struct instruction_op *op, const struct pt_regs *regs,
    switch (opcode) {
    #ifdef __powerpc64__
    case 1:
    + if (!cpu_has_feature(CPU_FTR_ARCH_31))
    + return -1;
    +
    prefix_r = GET_PREFIX_R(word);
    ra = GET_PREFIX_RA(suffix);
    rd = (suffix >> 21) & 0x1f;
    @@ -2733,6 +2736,9 @@ int analyse_instr(struct instruction_op *op, const struct pt_regs *regs,
    }
    break;
    case 1: /* Prefixed instructions */
    + if (!cpu_has_feature(CPU_FTR_ARCH_31))
    + return -1;
    +
    prefix_r = GET_PREFIX_R(word);
    ra = GET_PREFIX_RA(suffix);
    op->update_reg = ra;
    --
    2.27.0


    \
     
     \ /
      Last update: 2020-12-28 15:40    [W:2.179 / U:0.100 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site