Messages in this thread | | | Date | Wed, 28 Jun 2023 11:09:43 +0800 | From | Chao Gao <> | Subject | Re: [PATCH v12 05/22] x86/virt/tdx: Add SEAMCALL infrastructure |
| |
>+/* >+ * 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.
>+ >+ 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.
>+ return 0;
| |