On 5/22/2026 7:16 AM, Lisa Wang wrote:
[...]> diff --git a/tools/testing/selftests/kvm/include/x86/tdx/tdx_util.h 
b/tools/testing/selftests/kvm/include/x86/tdx/tdx_util.h
> index 9660ea9d2f31..4d01f806b37d 100644
> --- a/tools/testing/selftests/kvm/include/x86/tdx/tdx_util.h
> +++ b/tools/testing/selftests/kvm/include/x86/tdx/tdx_util.h
> @@ -39,6 +39,30 @@ static inline bool is_tdx_vm(struct kvm_vm *vm)
>       __TEST_ASSERT_VM_VCPU_IOCTL(!ret, #cmd, ret, vm);               \
>  })
>  
> +#define __tdx_vcpu_ioctl(vcpu, cmd, _flags, arg)                     \
> +({                                                                   \
> +     int r;                                                          \
> +                                                                     \
> +     union {                                                         \
> +             struct kvm_tdx_cmd c;                                   \
> +             unsigned long raw;                                      \
> +     } tdx_cmd = { .c = {                                            \
> +             .id = (cmd),                                            \
> +             .flags = (u32)(_flags),                         \
> +             .data = (u64)(arg),                             \

Nit:
The two lines' backslashes are misaligned.

> +     } };                                                            \
> +                                                                     \
> +     r = __vcpu_ioctl(vcpu, KVM_MEMORY_ENCRYPT_OP, &tdx_cmd.raw);    \
> +     r ?: tdx_cmd.c.hw_error;                                        \

Similar issue of the truncation of upper bits.
Though TDX KVM code never sets hw_error currently for vcpu version. 

> +})
> +
> +#define tdx_vcpu_ioctl(vcpu, cmd, flags, arg)                                
> \
> +({                                                                   \
> +     int ret = __tdx_vcpu_ioctl(vcpu, cmd, flags, arg);              \
> +                                                                     \
> +     __TEST_ASSERT_VM_VCPU_IOCTL(!ret, #cmd, ret, (vcpu)->vm);       \
> +})
> +
>  void tdx_init_vm(struct kvm_vm *vm, u64 attributes);
>  void tdx_vm_setup_boot_code_region(struct kvm_vm *vm);
>  void tdx_vm_setup_boot_parameters_region(struct kvm_vm *vm, u32 
> nr_runnable_vcpus);

Reply via email to