[PATCH v1 08/19] x86/alternative: Use insn_decode()

From: Borislav Petkov
Date: Wed Dec 23 2020 - 12:44:08 EST


From: Borislav Petkov <bp@xxxxxxx>

No functional changes, just simplification.

Signed-off-by: Borislav Petkov <bp@xxxxxxx>
---
arch/x86/kernel/alternative.c | 6 +++---
1 file 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;
--
2.29.2