Re: [PATCH 1/2] x86/tdx: Add helper to query maximum TD Quote size
From: Kiryl Shutsemau
Date: Fri Jun 12 2026 - 08:38:47 EST
On Fri, Jun 12, 2026 at 04:08:48AM -0700, Peter Fang wrote:
> TDX attestation blob ("TD Quote") sizes can grow with newer
> cryptographic schemes, so guests can no longer rely on a fixed-size
> buffer for the Quote.
>
> Newer TDX modules report the maximum TD Quote size via a TD-scope
> metadata field. Add a helper to query it instead of exposing tdg_vm_rd()
> directly, as it can read arbitrary metadata fields.
>
> Thanks to Xu Yilun for suggesting this.
>
> Assisted-by: Claude:claude-opus-4-7
> Assisted-by: GitHub Copilot:gpt-5.4
These supposes to be on the same line, no?
Documentation/process/coding-assistants.rst: Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]
> Signed-off-by: Peter Fang <peter.fang@xxxxxxxxx>
One nit below, otherwise:
Reviewed-by: Kiryl Shutsemau (Meta) <kas@xxxxxxxxxx>
> ---
> arch/x86/coco/tdx/tdx.c | 19 +++++++++++++++++++
> arch/x86/include/asm/shared/tdx.h | 1 +
> arch/x86/include/asm/tdx.h | 2 ++
> 3 files changed, 22 insertions(+)
>
> diff --git a/arch/x86/coco/tdx/tdx.c b/arch/x86/coco/tdx/tdx.c
> index 186915a17c50..88c66c46e70a 100644
> --- a/arch/x86/coco/tdx/tdx.c
> +++ b/arch/x86/coco/tdx/tdx.c
> @@ -197,6 +197,25 @@ u64 tdx_hcall_get_quote(u8 *buf, size_t size)
> }
> EXPORT_SYMBOL_GPL(tdx_hcall_get_quote);
>
> +/**
> + * tdx_get_max_quote_size() - Get the maximum TD Quote size
> + *
> + * Read the maximum size of a TD Quote from a 4-byte TD metadata field. The TDX
> + * guest driver uses it to size the buffer for Quote retrieval. Older TDX
> + * modules do not support this field and return an error.
> + *
> + * Return: Maximum Quote size in bytes on success, or 0 on failure.
> + */
> +u32 tdx_get_max_quote_size(void)
> +{
> + u64 val, ret;
> +
> + ret = tdg_vm_rd(TDCS_QUOTE_MAX_SIZE, &val);
> +
> + return ret ? 0 : (u32)val;
Cast is redundant.
> +}
> +EXPORT_SYMBOL_GPL(tdx_get_max_quote_size);
> +
> static void __noreturn tdx_panic(const char *msg)
> {
> struct tdx_module_args args = {
--
Kiryl Shutsemau / Kirill A. Shutemov