On Mon, Jun 05, 2023 at 03:20:19PM +0000, "Wang, Wei W" <wei.w.wang@xxxxxxxxx> wrote: > > diff --git a/arch/x86/kvm/vmx/tdx_ops.h b/arch/x86/kvm/vmx/tdx_ops.h > > new file mode 100644 index 000000000000..893cc6c25f3b > > --- /dev/null > > +++ b/arch/x86/kvm/vmx/tdx_ops.h > > @@ -0,0 +1,202 @@ > > +/* SPDX-License-Identifier: GPL-2.0 */ > > +/* constants/data definitions for TDX SEAMCALLs */ > > + > > +#ifndef __KVM_X86_TDX_OPS_H > > +#define __KVM_X86_TDX_OPS_H > > + > > +#include <linux/compiler.h> > > + > > +#include <asm/cacheflush.h> > > +#include <asm/asm.h> > > +#include <asm/kvm_host.h> > > + > > +#include "tdx_errno.h" > > +#include "tdx_arch.h" > > +#include "x86.h" > > + > > +static inline u64 kvm_seamcall(u64 op, u64 rcx, u64 rdx, u64 r8, u64 r9, > > + struct tdx_module_output *out) { > > + u64 ret; > > + > > + ret = __seamcall(op, rcx, rdx, r8, r9, out); > > + if (unlikely(ret == TDX_SEAMCALL_UD)) { > > + /* > > + * TDX requires VMXON or #UD. In the case of reboot or > > kexec, > > + * VMX is made off (VMXOFF) by kvm reboot notifier, > > + * kvm_reboot(), while TDs are still running. The callers > > check > > + * the returned error and complain. Suppress it by returning 0. > > + */ > > Curious how do the callers check the returned error when " Suppress > it by returning 0" here. It doesn't make sense for the caller to check the error and warn when kvm_rebooting = true. Let's make it "return kvm_rebooting ? 0 : ret;" instread of "return 0;". Does it make sense? -- Isaku Yamahata <isaku.yamahata@xxxxxxxxx>