lkml.org 
[lkml]   [2020]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.9 441/757] powerpc/watchpoint: Fix handling of vector instructions
    Date
    From: Ravi Bangoria <ravi.bangoria@linux.ibm.com>

    [ Upstream commit 4441eb02333a9b46a0d919aa7a6d3b137b5f2562 ]

    Vector load/store instructions are special because they are always
    aligned. Thus unaligned EA needs to be aligned down before comparing
    it with watch ranges. Otherwise we might consider valid event as
    invalid.

    Fixes: 74c6881019b7 ("powerpc/watchpoint: Prepare handler to handle more than one watchpoint")
    Signed-off-by: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20200902042945.129369-3-ravi.bangoria@linux.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/powerpc/kernel/hw_breakpoint.c | 2 ++
    1 file changed, 2 insertions(+)

    diff --git a/arch/powerpc/kernel/hw_breakpoint.c b/arch/powerpc/kernel/hw_breakpoint.c
    index 9f7df1c372330..f6b24838ca3c0 100644
    --- a/arch/powerpc/kernel/hw_breakpoint.c
    +++ b/arch/powerpc/kernel/hw_breakpoint.c
    @@ -644,6 +644,8 @@ static void get_instr_detail(struct pt_regs *regs, struct ppc_inst *instr,
    if (*type == CACHEOP) {
    *size = cache_op_size();
    *ea &= ~(*size - 1);
    + } else if (*type == LOAD_VMX || *type == STORE_VMX) {
    + *ea &= ~(*size - 1);
    }
    }

    --
    2.25.1


    \
     
     \ /
      Last update: 2020-10-27 17:11    [W:4.020 / U:0.164 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site