提交 38990e89 编写于 作者: B Borislav Petkov 提交者: Zheng Zengkai

x86/insn: Rename insn_decode() to insn_decode_from_regs()

stable inclusion
from stable-v5.10.133
commit a3d96c74395e162e880515d711ab96f5959856ec
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I5PTAS
CVE: CVE-2022-29900,CVE-2022-23816,CVE-2022-29901

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=a3d96c74395e162e880515d711ab96f5959856ec

--------------------------------

commit 9e761296 upstream.

Rename insn_decode() to insn_decode_from_regs() to denote that it
receives regs as param and uses registers from there during decoding.
Free the former name for a more generic version of the function.

No functional changes.
Signed-off-by: NBorislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/20210304174237.31945-2-bp@alien8.deSigned-off-by: NBen Hutchings <ben@decadent.org.uk>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: NLin Yujun <linyujun809@huawei.com>
Reviewed-by: NZhang Jianhua <chris.zjh@huawei.com>
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 b7ffb91f
...@@ -26,7 +26,7 @@ int insn_fetch_from_user(struct pt_regs *regs, ...@@ -26,7 +26,7 @@ int insn_fetch_from_user(struct pt_regs *regs,
unsigned char buf[MAX_INSN_SIZE]); unsigned char buf[MAX_INSN_SIZE]);
int insn_fetch_from_user_inatomic(struct pt_regs *regs, int insn_fetch_from_user_inatomic(struct pt_regs *regs,
unsigned char buf[MAX_INSN_SIZE]); unsigned char buf[MAX_INSN_SIZE]);
bool insn_decode(struct insn *insn, struct pt_regs *regs, bool insn_decode_from_regs(struct insn *insn, struct pt_regs *regs,
unsigned char buf[MAX_INSN_SIZE], int buf_size); unsigned char buf[MAX_INSN_SIZE], int buf_size);
#endif /* _ASM_X86_INSN_EVAL_H */ #endif /* _ASM_X86_INSN_EVAL_H */
...@@ -236,7 +236,7 @@ static enum es_result vc_decode_insn(struct es_em_ctxt *ctxt) ...@@ -236,7 +236,7 @@ static enum es_result vc_decode_insn(struct es_em_ctxt *ctxt)
return ES_EXCEPTION; return ES_EXCEPTION;
} }
if (!insn_decode(&ctxt->insn, ctxt->regs, buffer, res)) if (!insn_decode_from_regs(&ctxt->insn, ctxt->regs, buffer, res))
return ES_DECODE_FAILED; return ES_DECODE_FAILED;
} else { } else {
res = vc_fetch_insn_kernel(ctxt, buffer); res = vc_fetch_insn_kernel(ctxt, buffer);
......
...@@ -356,7 +356,7 @@ bool fixup_umip_exception(struct pt_regs *regs) ...@@ -356,7 +356,7 @@ bool fixup_umip_exception(struct pt_regs *regs)
if (!nr_copied) if (!nr_copied)
return false; return false;
if (!insn_decode(&insn, regs, buf, nr_copied)) if (!insn_decode_from_regs(&insn, regs, buf, nr_copied))
return false; return false;
umip_inst = identify_insn(&insn); umip_inst = identify_insn(&insn);
......
...@@ -1492,7 +1492,7 @@ int insn_fetch_from_user_inatomic(struct pt_regs *regs, unsigned char buf[MAX_IN ...@@ -1492,7 +1492,7 @@ int insn_fetch_from_user_inatomic(struct pt_regs *regs, unsigned char buf[MAX_IN
} }
/** /**
* insn_decode() - Decode an instruction * insn_decode_from_regs() - Decode an instruction
* @insn: Structure to store decoded instruction * @insn: Structure to store decoded instruction
* @regs: Structure with register values as seen when entering kernel mode * @regs: Structure with register values as seen when entering kernel mode
* @buf: Buffer containing the instruction bytes * @buf: Buffer containing the instruction bytes
...@@ -1505,7 +1505,7 @@ int insn_fetch_from_user_inatomic(struct pt_regs *regs, unsigned char buf[MAX_IN ...@@ -1505,7 +1505,7 @@ int insn_fetch_from_user_inatomic(struct pt_regs *regs, unsigned char buf[MAX_IN
* *
* True if instruction was decoded, False otherwise. * True if instruction was decoded, False otherwise.
*/ */
bool insn_decode(struct insn *insn, struct pt_regs *regs, bool insn_decode_from_regs(struct insn *insn, struct pt_regs *regs,
unsigned char buf[MAX_INSN_SIZE], int buf_size) unsigned char buf[MAX_INSN_SIZE], int buf_size)
{ {
int seg_defs; int seg_defs;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册
反馈
建议
客服 返回
顶部