Re: [PATCH v13 06/22] x86/virt/tdx: Add SEAMCALL error printing for module initialization

From: Dave Hansen
Date: Fri Sep 08 2023 - 12:31:51 EST


On 8/25/23 05:14, Kai Huang wrote:
> +#define SEAMCALL_PRERR(__seamcall_func, __fn, __args, __seamcall_err_func) \
> +({ \
> + u64 ___sret = __SEAMCALL_PRERR(__seamcall_func, __fn, __args, \
> + __seamcall_err_func, pr_err); \
> + int ___ret; \
> + \
> + switch (___sret) { \
> + case TDX_SUCCESS: \
> + ___ret = 0; \
> + break; \
> + case TDX_SEAMCALL_VMFAILINVALID: \
> + pr_err("SEAMCALL failed: TDX module not loaded.\n"); \
> + ___ret = -ENODEV; \
> + break; \
> + case TDX_SEAMCALL_GP: \
> + pr_err("SEAMCALL failed: TDX disabled by BIOS.\n"); \
> + ___ret = -EOPNOTSUPP; \
> + break; \
> + case TDX_SEAMCALL_UD: \
> + pr_err("SEAMCALL failed: CPU not in VMX operation.\n"); \
> + ___ret = -EACCES; \
> + break; \
> + default: \
> + ___ret = -EIO; \
> + } \
> + ___ret; \
> +})

I have no clue where all of this came from or why it is necessary or why
it has to be macros. I'm just utterly confused.

I was really hoping to be able to run through this set and get it ready
to be merged. But it seems to still be seeing a *LOT* of change.
Should I wait another few weeks for this to settle down again?