Hi Changes in V3: Refer: https://lore.kernel.org/r/aAL4dT1pWG5dDDeo@xxxxxxxxxx Remove KVM_BUG_ON() from tdx_mmu_release_hkid() because it would trigger on the error path from __tdx_td_init() Put cpus_read_lock() handling back into tdx_mmu_release_hkid() Handle KVM_TDX_TERMINATE_VM in the switch statement, i.e. let tdx_vm_ioctl() deal with kvm->lock The version 1 RFC: https://lore.kernel.org/all/20250313181629.17764-1-adrian.hunter@xxxxxxxxx/ listed 3 options and implemented option 2. Sean replied with code for option 1, which tested out OK, so here it is plus a commit log. It depends upon kvm_trylock_all_vcpus(kvm) which is the assumed result of Maxim's work-in-progress here: https://lore.kernel.org/all/20250409014136.2816971-1-mlevitsk@xxxxxxxxxx/ Note it is assumed that kvm_trylock_all_vcpus(kvm) follows the return value semantics of mutex_trylock() i.e. 1 means locks have been successfully acquired, 0 means not succesful. Sean Christopherson (1): KVM: TDX: Add sub-ioctl KVM_TDX_TERMINATE_VM Documentation/virt/kvm/x86/intel-tdx.rst | 16 ++++++++ arch/x86/include/uapi/asm/kvm.h | 1 + arch/x86/kvm/vmx/tdx.c | 63 ++++++++++++++++++++++---------- 3 files changed, 61 insertions(+), 19 deletions(-) Regards Adrian