Message ID | 20220802074750.2581308-40-xiaoyao.li@intel.com |
---|---|
State | New |
Headers | show |
Series | TDX QEMU support | expand |
On Tue, Aug 02, 2022 at 03:47:49PM +0800, Xiaoyao Li wrote: > From: Sean Christopherson <sean.j.christopherson@intel.com> > > Don't get/put state of TDX VMs since accessing/mutating guest state of > production TDs is not supported. > > Note, it will be allowed for a debug TD. Corresponding support will be > introduced when debug TD support is implemented in the future. > > Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> > Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com> Acked-by: Gerd Hoffmann <kraxel@redhat.com>
diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c index 948c87ebdb97..95afbbac7116 100644 --- a/target/i386/kvm/kvm.c +++ b/target/i386/kvm/kvm.c @@ -4584,6 +4584,11 @@ int kvm_arch_put_registers(CPUState *cpu, int level) assert(cpu_is_stopped(cpu) || qemu_cpu_is_self(cpu)); + /* TODO: Allow accessing guest state for debug TDs. */ + if (is_tdx_vm()) { + return 0; + } + /* must be before kvm_put_nested_state so that EFER.SVME is set */ ret = has_sregs2 ? kvm_put_sregs2(x86_cpu) : kvm_put_sregs(x86_cpu); if (ret < 0) { @@ -4678,6 +4683,12 @@ int kvm_arch_get_registers(CPUState *cs) if (ret < 0) { goto out; } + + /* TODO: Allow accessing guest state for debug TDs. */ + if (is_tdx_vm()) { + return 0; + } + ret = kvm_getput_regs(cpu, 0); if (ret < 0) { goto out;