• Michael Neuling's avatar
    powerpc/ptrace: Fix setting 512B aligned breakpoints with PTRACE_SET_DEBUGREG · 4f7c06e2
    Michael Neuling authored
    In commit e2a800be ("powerpc/hw_brk: Fix off by one error when
    validating DAWR region end") we fixed setting the DAWR end point to
    its max value via PPC_PTRACE_SETHWDEBUG. Unfortunately we broke
    PTRACE_SET_DEBUGREG when setting a 512 byte aligned breakpoint.
    
    PTRACE_SET_DEBUGREG currently sets the length of the breakpoint to
    zero (memset() in hw_breakpoint_init()). This worked with
    arch_validate_hwbkpt_settings() before the above patch was applied but
    is now broken if the breakpoint is 512byte aligned.
    
    This sets the length of the breakpoint to 8 bytes when using
    PTRACE_SET_DEBUGREG.
    
    Fixes: e2a800be ("powerpc/hw_brk: Fix off by one error when validating DAWR region end")
    Cc: stable@vger.kernel.org # v3.11+
    Signed-off-by: default avatarMichael Neuling <mikey@neuling.org>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    4f7c06e2
ptrace.c 86.9 KB