• Naveen N. Rao's avatar
    powerpc/kprobes: Update optprobes to use emulate_update_regs() · 8afafa6f
    Naveen N. Rao authored
    Optprobes depended on an updated regs->nip from analyse_instr() to
    identify the location to branch back from the optprobes trampoline.
    However, since commit 3cdfcbfd ("powerpc: Change analyse_instr so
    it doesn't modify *regs"), analyse_instr() doesn't update the registers
    anymore.  Due to this, we end up branching back from the optprobes
    trampoline to the same branch into the trampoline resulting in a loop.
    
    Fix this by calling out to emulate_update_regs() before using the nip.
    Additionally, explicitly compare the return value from analyse_instr()
    to 1, rather than just checking for !0 so as to guard against any
    future changes to analyse_instr() that may result in -1 being returned
    in more scenarios.
    
    Fixes: 3cdfcbfd ("powerpc: Change analyse_instr so it doesn't modify *regs")
    Signed-off-by: default avatarNaveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    8afafa6f
optprobes.c 9.66 KB