From: Borislav Petkov Date: Tue, 17 Nov 2020 14:26:12 +0000 (+0100) Subject: x86/uprobes: Convert to insn_decode() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=88afc23922137cd3efdb0f0b6722785c9f6a35eb;p=linux.git x86/uprobes: Convert to insn_decode() Simplify code, no functional changes. Signed-off-by: Borislav Petkov Link: https://lkml.kernel.org/r/20210304174237.31945-16-bp@alien8.de --- diff --git a/arch/x86/kernel/uprobes.c b/arch/x86/kernel/uprobes.c index a2b4133949171..b63cf8f7745ee 100644 --- a/arch/x86/kernel/uprobes.c +++ b/arch/x86/kernel/uprobes.c @@ -276,12 +276,12 @@ static bool is_prefix_bad(struct insn *insn) static int uprobe_init_insn(struct arch_uprobe *auprobe, struct insn *insn, bool x86_64) { + enum insn_mode m = x86_64 ? INSN_MODE_64 : INSN_MODE_32; u32 volatile *good_insns; + int ret; - insn_init(insn, auprobe->insn, sizeof(auprobe->insn), x86_64); - /* has the side-effect of processing the entire instruction */ - insn_get_length(insn); - if (!insn_complete(insn)) + ret = insn_decode(insn, auprobe->insn, sizeof(auprobe->insn), m); + if (ret < 0) return -ENOEXEC; if (is_prefix_bad(insn))