Hi Changes in V4: Drop TDX_FLUSHVP_NOT_DONE change. It will be done separately. Use KVM_BUG_ON() instead of WARN_ON(). Correct kvm_trylock_all_vcpus() return value. 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 now upstream: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e4a454ced74c0ac97c8bd32f086ee3ad74528780 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 | 34 ++++++++++++++++++++++++-------- 3 files changed, 43 insertions(+), 8 deletions(-) Regards Adrian