[PATCHv4 0/4] Add generic MMIO instruction deconding to be used in SEV and TDX

From: Kirill A. Shutemov
Date: Tue Nov 30 2021 - 13:50:41 EST


Both AMD SEV and Intel TDX has to decode MMIO instruction to be able to
handle MMIO.

Extract insn_decode_mmio() from SEV code. TDX will also use this helper.

v4:
- Use enum mmio_type inside insn_decode_mmio() (Tom)
- Keep a comment in vc_handle_mmio() (Tom)
- Tested-by on AMD HW from Joerg.
v3:
- Handle insn_get_opcode() in is_string_insn()
v2:
- insn_get_modrm_reg_ptr() returns unsigned long pointer now (PeterZ);
- Handle insn_get_opcode() failure in insn_decode_mmio() (PeterZ);


Kirill A. Shutemov (4):
x86/insn-eval: Handle insn_get_opcode() failure
x86/insn-eval: Introduce insn_get_modrm_reg_ptr()
x86/insn-eval: Introduce insn_decode_mmio()
x86/sev-es: Use insn_decode_mmio() for MMIO implementation

arch/x86/include/asm/insn-eval.h | 13 +++
arch/x86/kernel/sev.c | 172 ++++++++-----------------------
arch/x86/lib/insn-eval.c | 109 +++++++++++++++++++-
3 files changed, 161 insertions(+), 133 deletions(-)

--
2.32.0