]> git.baikalelectronics.ru Git - kernel.git/commit
x86/insn-eval: Introduce insn_decode_mmio()
authorKirill A. Shutemov <kirill@shutemov.name>
Tue, 30 Nov 2021 18:49:32 +0000 (21:49 +0300)
committerDave Hansen <dave.hansen@linux.intel.com>
Tue, 30 Nov 2021 22:53:19 +0000 (14:53 -0800)
commit1e80a4b0dc930b55b28d219449c73eb9a87e3597
tree0a2ec6be7a27efaddf4db904ba8b5048537495e2
parent67cd5bbbcce2f94dec03f26143760fea6ea58d45
x86/insn-eval: Introduce insn_decode_mmio()

In preparation for sharing MMIO instruction decode between SEV-ES and
TDX, factor out the common decode into a new insn_decode_mmio() helper.

For regular virtual machine, MMIO is handled by the VMM and KVM
emulates instructions that caused MMIO. But, this model doesn't work
for a secure VMs (like SEV or TDX) as VMM doesn't have access to the
guest memory and register state. So, for TDX or SEV VMM needs
assistance in handling MMIO. It induces exception in the guest. Guest
has to decode the instruction and handle it on its own.

The code is based on the current SEV MMIO implementation.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Reviewed-by: Andi Kleen <ak@linux.intel.com>
Reviewed-by: Tony Luck <tony.luck@intel.com>
Tested-by: Joerg Roedel <jroedel@suse.de>
Acked-by: Tom Lendacky <thomas.lendacky@amd.com>
Link: https://lkml.kernel.org/r/20211130184933.31005-4-kirill.shutemov@linux.intel.com
arch/x86/include/asm/insn-eval.h
arch/x86/lib/insn-eval.c