BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4169
The previous TDX MmioExit doesn't handle the Mmio instructions correctly in some scenarios. This patch-set refactors the implementation to fix the issues. Before the refactoring, common X86 instruction codes in CcExitVcHandler.c are moved to separate files (CcInstruction.h / CcInstruction.c) so that these codes can be re-used in TDX. Code: https://github.com/mxu9/edk2/tree/TdxMmioExit.v2 v2 changes: - Add CpuDeadLoop () after each TDVMCALL(HALT) in VE handler. Because TDVMCALL(HALT) is not trusted. - Other minor changes such as deleting ASSERT in VE handler. Because any error in VE handler will trigger CpuDeadLoop (). So ASSERT is not needed any more. Cc: Erdem Aktas <erdemak...@google.com> Cc: James Bottomley <j...@linux.ibm.com> Cc: Jiewen Yao <jiewen....@intel.com> Cc: Gerd Hoffmann <kra...@redhat.com> Cc: Tom Lendacky <thomas.lenda...@amd.com> Cc: Ryan Afranji <afra...@google.com> Reported-by: Ryan Afranji <afra...@google.com> Signed-off-by: Min Xu <min.m...@intel.com> Min M Xu (2): OvmfPkg/CcExitLib: Move common X86 instruction code to separate file OvmfPkg/CcExitLib: Refactor TDX MmioExit OvmfPkg/Library/CcExitLib/CcExitLib.inf | 1 + OvmfPkg/Library/CcExitLib/CcExitVcHandler.c | 697 +++----------------- OvmfPkg/Library/CcExitLib/CcExitVeHandler.c | 525 ++++++++++----- OvmfPkg/Library/CcExitLib/CcInstruction.c | 454 +++++++++++++ OvmfPkg/Library/CcExitLib/CcInstruction.h | 197 ++++++ OvmfPkg/Library/CcExitLib/SecCcExitLib.inf | 1 + 6 files changed, 1098 insertions(+), 777 deletions(-) create mode 100644 OvmfPkg/Library/CcExitLib/CcInstruction.c create mode 100644 OvmfPkg/Library/CcExitLib/CcInstruction.h -- 2.29.2.windows.2 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#98207): https://edk2.groups.io/g/devel/message/98207 Mute This Topic: https://groups.io/mt/96166746/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-