[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH v3 27/36] i386/tdx: Disable SMM for TDX VMs
From: |
Xiaoyao Li |
Subject: |
[RFC PATCH v3 27/36] i386/tdx: Disable SMM for TDX VMs |
Date: |
Thu, 17 Mar 2022 21:59:04 +0800 |
TDX doesn't support SMM and VMM cannot emulate SMM for TDX VMs because
VMM cannot manipulate TDX VM's memory.
Disable SMM for TDX VMs and error out if user requests to enable SMM.
Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
---
target/i386/kvm/tdx.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/target/i386/kvm/tdx.c b/target/i386/kvm/tdx.c
index deb9634b27dc..ec6f5d7a2e48 100644
--- a/target/i386/kvm/tdx.c
+++ b/target/i386/kvm/tdx.c
@@ -302,12 +302,25 @@ static Notifier tdx_machine_done_notify = {
int tdx_kvm_init(MachineState *ms, Error **errp)
{
+ X86MachineState *x86ms = X86_MACHINE(ms);
TdxGuest *tdx = (TdxGuest *)object_dynamic_cast(OBJECT(ms->cgs),
TYPE_TDX_GUEST);
if (!tdx) {
return -EINVAL;
}
+ if (!kvm_enable_x2apic()) {
+ error_setg(errp, "Failed to enable x2apic in KVM");
+ return -EINVAL;
+ }
+
+ if (x86ms->smm == ON_OFF_AUTO_AUTO) {
+ x86ms->smm = ON_OFF_AUTO_OFF;
+ } else if (x86ms->smm == ON_OFF_AUTO_ON) {
+ error_setg(errp, "TDX VM doesn't support SMM");
+ return -EINVAL;
+ }
+
if (!tdx_caps) {
get_tdx_capabilities();
}
--
2.27.0
- Re: [RFC PATCH v3 18/36] i386/tdvf: Introduce function to parse TDVF metadata, (continued)
- [RFC PATCH v3 19/36] i386/tdx: Parse TDVF metadata for TDX VM, Xiaoyao Li, 2022/03/17
- [RFC PATCH v3 20/36] i386/tdx: Get and store the mem_ptr of TDVF firmware, Xiaoyao Li, 2022/03/17
- [RFC PATCH v3 21/36] i386/tdx: Track mem_ptr for each firmware entry of TDVF, Xiaoyao Li, 2022/03/17
- [RFC PATCH v3 22/36] i386/tdx: Track RAM entries for TDX VM, Xiaoyao Li, 2022/03/17
- [RFC PATCH v3 23/36] i386/tdx: Create the TD HOB list upon machine init done, Xiaoyao Li, 2022/03/17
- [RFC PATCH v3 24/36] i386/tdx: Call KVM_TDX_INIT_VCPU to initialize TDX vcpu, Xiaoyao Li, 2022/03/17
- [RFC PATCH v3 25/36] i386/tdx: Add TDVF memory via KVM_TDX_INIT_MEM_REGION, Xiaoyao Li, 2022/03/17
- [RFC PATCH v3 26/36] i386/tdx: Finalize TDX VM, Xiaoyao Li, 2022/03/17
- [RFC PATCH v3 27/36] i386/tdx: Disable SMM for TDX VMs,
Xiaoyao Li <=
- [RFC PATCH v3 36/36] docs: Add TDX documentation, Xiaoyao Li, 2022/03/17
- [RFC PATCH v3 28/36] i386/tdx: Disable PIC for TDX VMs, Xiaoyao Li, 2022/03/17
- [RFC PATCH v3 29/36] i386/tdx: Don't allow system reset for TDX VMs, Xiaoyao Li, 2022/03/17
- [RFC PATCH v3 30/36] hw/i386: add eoi_intercept_unsupported member to X86MachineState, Xiaoyao Li, 2022/03/17
- [RFC PATCH v3 31/36] hw/i386: add option to forcibly report edge trigger in acpi tables, Xiaoyao Li, 2022/03/17
- [RFC PATCH v3 32/36] i386/tdx: Don't synchronize guest tsc for TDs, Xiaoyao Li, 2022/03/17
- [RFC PATCH v3 33/36] i386/tdx: Only configure MSR_IA32_UCODE_REV in kvm_init_msrs() for TDs, Xiaoyao Li, 2022/03/17