lkml.org 
[lkml]   [2023]   [Jun]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH v12 05/22] x86/virt/tdx: Add SEAMCALL infrastructure
    On Wed, Jun 28, 2023 at 03:34:05AM +0000, Huang, Kai wrote:
    > On Wed, 2023-06-28 at 11:09 +0800, Chao Gao wrote:
    > > > +/*
    > > > + * Wrapper of __seamcall() to convert SEAMCALL leaf function error code
    > > > + * to kernel error code. @seamcall_ret and @out contain the SEAMCALL
    > > > + * leaf function return code and the additional output respectively if
    > > > + * not NULL.
    > > > + */
    > > > +static int __always_unused seamcall(u64 fn, u64 rcx, u64 rdx, u64 r8, u64
    > > > r9,
    > > > + u64 *seamcall_ret,
    > > > + struct tdx_module_output *out)
    > > > +{
    > > > + u64 sret;
    > > > + int cpu;
    > > > +
    > > > + /* Need a stable CPU id for printing error message */
    > > > + cpu = get_cpu();
    > > > + sret = __seamcall(fn, rcx, rdx, r8, r9, out);
    > > > + put_cpu();
    > > > +
    > > > + /* Save SEAMCALL return code if the caller wants it */
    > > > + if (seamcall_ret)
    > > > + *seamcall_ret = sret;
    > >
    > > Hi Kai,
    > >
    > > All callers in this series pass NULL for seamcall_ret. I am no sure if
    > > you keep it intentionally.
    >
    > In this series all the callers doesn't need seamcall_ret.

    I'm fine keeping it if it is needed by KVM TDX enabling. Otherwise, just
    drop it.

    > > > +
    > > > + switch (sret) {
    > > > + case 0:
    > > > + /* SEAMCALL was successful */
    > >
    > > Nit: if you add
    > >
    > > #define TDX_SUCCESS 0
    > >
    > > and do
    > >
    > > case TDX_SUCCESS:
    > > return 0;
    > >
    > > then the code becomes self-explanatory. i.e., you can drop the comment.
    >
    > If using this, I ended up with below:
    >
    > --- a/arch/x86/include/asm/tdx.h
    > +++ b/arch/x86/include/asm/tdx.h
    > @@ -23,6 +23,8 @@
    > #define TDX_SEAMCALL_GP (TDX_SW_ERROR | X86_TRAP_GP)
    > #define TDX_SEAMCALL_UD (TDX_SW_ERROR | X86_TRAP_UD)
    >
    > +#define TDX_SUCCESS 0
    > +
    >
    > Hi Kirill/Dave/David,
    >
    > Are you happy with this?

    Sure, looks good.

    --
    Kiryl Shutsemau / Kirill A. Shutemov

    \
     
     \ /
      Last update: 2023-06-28 13:51    [W:4.017 / U:0.724 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site