[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