• Masami Hiramatsu's avatar
    kprobes/x86: Fix kprobes to skip prefixes correctly · 567a9fd8
    Masami Hiramatsu authored
    Fix resume_execution() and is_IF_modifier() to skip x86
    instruction prefixes correctly by using x86 instruction
    attribute.
    
    Without this fix, resume_execution() can't handle instructions
    which have non-REX prefixes (REX prefixes are skipped). This
    will cause unexpected kernel panic by hitting bad address when a
    kprobe hits on two-byte ret (e.g. "repz ret" generated for
    Athlon/K8 optimization), because it just checks "repz" and can't
    recognize the "ret" instruction.
    
    These prefixes can be found easily with x86 instruction
    attribute. This patch introduces skip_prefixes() and uses it in
    resume_execution() and is_IF_modifier() to skip prefixes.
    Signed-off-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
    LKML-Reference: <4C298A6E.8070609@hitachi.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    567a9fd8
kprobes.c 40.1 KB