[RFC v2-fix-v2 0/3] x86/tdx: Handle port I/O

From: Kuppuswamy Sathyanarayanan
Date: Tue Jun 08 2021 - 11:40:51 EST


This patchset addresses the review comments in the patch titled
"[RFC v2 14/32] x86/tdx: Handle port I/O". Since it requires
patch split, sending these together.

Changes since RFC v2-fix-v1:
* Splitted TDX decompression IO support into a seperate patch.
* Implemented tdg_handle_io() and tdx_early_io() in the similar
way as per review suggestion.
* Added VE_IS_IO_OUT() macro as per review suggestion.
* Added VE_IS_IO_STRING() to check the string I/O case in
tdx_early_io()
* Removed helper function tdg_in() and tdg_out() and directly
called IO hypercall to make the implementation uniform in
decompression code, early IO code and normal IO handler code.

Changes since RFC v2:
 * Removed assembly implementation of port IO emulation code
   and modified __in/__out IO helpers to directly call C function
   for in/out instruction emulation in decompression code.
 * Added helper function tdx_get_iosize() to make it easier for
   calling tdg_out/tdg_int() C functions from decompression code.
 * Added support for early exception handler to support IO
   instruction emulation in early boot kernel code.
 * Removed alternative_ usage and made kernel only use #VE based
   IO instruction emulation support outside the decompression module.
 * Added support for protection_guest_has() API to generalize
   AMD SEV/TDX specific initialization code in common drivers.
 * Fixed commit log and comments as per review comments.


Andi Kleen (1):
x86/tdx: Handle early IO operations

Kirill A. Shutemov (1):
x86/tdx: Handle port I/O

Kuppuswamy Sathyanarayanan (1):
x86/tdx: Handle port I/O in decompression code

arch/x86/boot/compressed/Makefile | 1 +
arch/x86/boot/compressed/tdcall.S | 3 ++
arch/x86/include/asm/io.h | 15 +++---
arch/x86/include/asm/tdx.h | 54 ++++++++++++++++++++
arch/x86/kernel/head64.c | 3 ++
arch/x86/kernel/tdx.c | 84 +++++++++++++++++++++++++++++++
6 files changed, 154 insertions(+), 6 deletions(-)
create mode 100644 arch/x86/boot/compressed/tdcall.S

--
2.25.1