aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/alternative.c
diff options
context:
space:
mode:
authorBorislav Petkov <bp@suse.de>2020-11-06 19:37:25 +0100
committerBorislav Petkov <bp@suse.de>2021-03-15 11:25:38 +0100
commit63c66cde7bbcc79aac14b25861c5b2495eede57b (patch)
tree6c3738789240341911adda70fbeb16020ab83e64 /arch/x86/kernel/alternative.c
parentperf/x86/intel/ds: Check return values of insn decoder functions (diff)
downloadlinux-dev-63c66cde7bbcc79aac14b25861c5b2495eede57b.tar.xz
linux-dev-63c66cde7bbcc79aac14b25861c5b2495eede57b.zip
x86/alternative: Use insn_decode()
No functional changes, just simplification. Signed-off-by: Borislav Petkov <bp@suse.de> Link: https://lkml.kernel.org/r/20210304174237.31945-10-bp@alien8.de
Diffstat (limited to 'arch/x86/kernel/alternative.c')
-rw-r--r--arch/x86/kernel/alternative.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
index 8d778e46725d..ce28c5c1deba 100644
--- a/arch/x86/kernel/alternative.c
+++ b/arch/x86/kernel/alternative.c
@@ -1274,15 +1274,15 @@ static void text_poke_loc_init(struct text_poke_loc *tp, void *addr,
const void *opcode, size_t len, const void *emulate)
{
struct insn insn;
+ int ret;
memcpy((void *)tp->text, opcode, len);
if (!emulate)
emulate = opcode;
- kernel_insn_init(&insn, emulate, MAX_INSN_SIZE);
- insn_get_length(&insn);
+ ret = insn_decode(&insn, emulate, MAX_INSN_SIZE, INSN_MODE_KERN);
- BUG_ON(!insn_complete(&insn));
+ BUG_ON(ret < 0);
BUG_ON(len != insn.length);
tp->rel_addr = addr - (void *)_stext;