On Thu, 2025-10-16 at 17:32 -0700, Sean Christopherson wrote:
Add a helper to copy a kvm_tdx_cmd structure from userspace and verify
that must-be-zero fields are indeed zero.
No functional change intended.
Signed-off-by: Sean Christopherson <seanjc@google.com>
Reviewed-by: Kai Huang <redacted>
quoted hunk ↗ jump to hunk
---
arch/x86/kvm/vmx/tdx.c | 31 +++++++++++++++++--------------
1 file changed, 17 insertions(+), 14 deletions(-)
diff --git a/arch/x86/kvm/vmx/tdx.c b/arch/x86/kvm/vmx/tdx.c
index 2e2dab89c98f..d5f810435f34 100644
--- a/arch/x86/kvm/vmx/tdx.c
+++ b/arch/x86/kvm/vmx/tdx.c
@@ -2761,20 +2761,25 @@ static int tdx_td_finalize(struct kvm *kvm, struct kvm_tdx_cmd *cmd)
return 0;
}
+static int tdx_get_cmd(void __user *argp, struct kvm_tdx_cmd *cmd)
+{
+ if (copy_from_user(cmd, argp, sizeof(*cmd)))
+ return -EFAULT;
+
+ if (cmd->hw_error)
+ return -EINVAL;
Nit: to me it's a little bit pity to lose the below comment:
/*
* Userspace should never set hw_error. It is used to fill
* hardware-defined error by the kernel.
*/