On 10/29/2025 5:20 AM, Sagi Shahar wrote:
From: Isaku Yamahata isaku.yamahata@intel.com
Make sure that all the attributes enabled by the test are reported as supported by the TDX module.
More accurately, supported by both the TDX module and KVM. KVM filters out the attributes not supported by itself.
Otherwise, Reviewed-by: Binbin Wu binbin.wu@linux.intel.com
This also exercises the KVM_TDX_CAPABILITIES ioctl.
Signed-off-by: Isaku Yamahata isaku.yamahata@intel.com Co-developed-by: Sagi Shahar sagis@google.com Signed-off-by: Sagi Shahar sagis@google.com
tools/testing/selftests/kvm/lib/x86/tdx/tdx_util.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
diff --git a/tools/testing/selftests/kvm/lib/x86/tdx/tdx_util.c b/tools/testing/selftests/kvm/lib/x86/tdx/tdx_util.c index 7a622b4810b1..2551b3eac8f8 100644 --- a/tools/testing/selftests/kvm/lib/x86/tdx/tdx_util.c +++ b/tools/testing/selftests/kvm/lib/x86/tdx/tdx_util.c @@ -231,6 +231,18 @@ static void vm_tdx_filter_cpuid(struct kvm_vm *vm, free(tdx_cap); } +static void tdx_check_attributes(struct kvm_vm *vm, uint64_t attributes) +{
- struct kvm_tdx_capabilities *tdx_cap;
- tdx_cap = tdx_read_capabilities(vm);
- /* Make sure all the attributes are reported as supported */
- TEST_ASSERT_EQ(attributes & tdx_cap->supported_attrs, attributes);
- free(tdx_cap);
+}
- void vm_tdx_init_vm(struct kvm_vm *vm, uint64_t attributes) { struct kvm_tdx_init_vm *init_vm;
@@ -250,6 +262,8 @@ void vm_tdx_init_vm(struct kvm_vm *vm, uint64_t attributes) memcpy(&init_vm->cpuid, cpuid, kvm_cpuid2_size(cpuid->nent)); free(cpuid);
- tdx_check_attributes(vm, attributes);
- init_vm->attributes = attributes;
vm_tdx_vm_ioctl(vm, KVM_TDX_INIT_VM, 0, init_vm);