uprobes/x86: Emulate relative conditional "near" jmp's
authorOleg Nesterov <oleg@redhat.com>
Mon, 7 Apr 2014 14:22:58 +0000 (16:22 +0200)
committerOleg Nesterov <oleg@redhat.com>
Thu, 17 Apr 2014 19:58:25 +0000 (21:58 +0200)
commit6cc5e7ff2c38641060f20786a5caf2815edbca5f
tree393f386a447bf0c124a685c9eaa5d8e87b5d167d
parent8f95505bc18a026ef7d3dfdbce4e5b31b3e4fc1b
uprobes/x86: Emulate relative conditional "near" jmp's

Change branch_setup_xol_ops() to simply use opc1 = OPCODE2(insn) - 0x10
if OPCODE1() == 0x0f; this matches the "short" jmp which checks the same
condition.

Thanks to lib/insn.c, it does the rest correctly. branch->ilen/offs are
correct no matter if this jmp is "near" or "short".

Reported-by: Jonathan Lebon <jlebon@redhat.com>
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Reviewed-by: Jim Keniston <jkenisto@us.ibm.com>
arch/x86/kernel/uprobes.c