From: "tip-bot2 for Peter Fang" <tip-bot2@linutronix.de>
To: linux-tip-commits@vger.kernel.org
Cc: Peter Fang <peter.fang@intel.com>,
Dave Hansen <dave.hansen@linux.intel.com>,
Rick Edgecombe <rick.p.edgecombe@intel.com>,
x86@kernel.org, linux-kernel@vger.kernel.org
Subject: [tip: x86/tdx] virt: tdx-guest: Make the Quote buffer size dynamic
Date: Fri, 02 Oct 2026 16:29:43 -0000 [thread overview]
Message-ID: <179095858314.3910103.10093912808378605506.tip-bot2@tip-bot2> (raw)
In-Reply-To: <20260930103739.2851980-7-peter.fang@intel.com>
The following commit has been merged into the x86/tdx branch of tip:
Commit-ID: 5b8212d45d99b77c84e3ad305a295e9e65d5ef20
Gitweb: https://git.kernel.org/tip/5b8212d45d99b77c84e3ad305a295e9e65d5ef20
Author: Peter Fang <peter.fang@intel.com>
AuthorDate: Wed, 30 Sep 2026 03:30:55 -07:00
Committer: Dave Hansen <dave.hansen@linux.intel.com>
CommitterDate: Fri, 02 Oct 2026 09:04:01 -07:00
virt: tdx-guest: Make the Quote buffer size dynamic
Support a new TDX module ABI that reports the Quote size limit in a
metadata field. The fixed 128KB buffer in the driver may be too small
for Quotes that use new algorithms like post-quantum cryptography (PQC),
which can produce much larger certificates. With this ABI, the guest
sizes the buffer to the platform's needs and no longer has to rely on
some empirical number.
The shared buffer comes from the buddy allocator, as the host expects it
to be physically contiguous. The allocator's page order limit should be
sufficient for current attestation needs. Platforms that don't report
the limit fall back to the default 128KB buffer.
Assume the TDX module always reports the same size. It is a TDX module
bug if the size changes.
AI was used under supervision to collect/apply feedback, review code and
workshop logs.
Based on a patch originally by Kuppuswamy Sathyanarayanan.
Signed-off-by: Peter Fang <peter.fang@intel.com>
Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Reviewed-by: Rick Edgecombe <rick.p.edgecombe@intel.com>
Link: https://patch.msgid.link/20260930103739.2851980-7-peter.fang@intel.com
---
arch/x86/coco/tdx/tdx.c | 1 +
drivers/virt/coco/tdx-guest/tdx-guest.c | 15 ++++++++++++++-
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/arch/x86/coco/tdx/tdx.c b/arch/x86/coco/tdx/tdx.c
index 02c2871..ad489f2 100644
--- a/arch/x86/coco/tdx/tdx.c
+++ b/arch/x86/coco/tdx/tdx.c
@@ -213,6 +213,7 @@ int tdx_get_max_quote_size(u64 *max_quote_size)
return 0;
}
+EXPORT_SYMBOL_FOR_MODULES(tdx_get_max_quote_size, "tdx-guest");
static void __noreturn tdx_panic(const char *msg)
{
diff --git a/drivers/virt/coco/tdx-guest/tdx-guest.c b/drivers/virt/coco/tdx-guest/tdx-guest.c
index 0cf078f..11d741d 100644
--- a/drivers/virt/coco/tdx-guest/tdx-guest.c
+++ b/drivers/virt/coco/tdx-guest/tdx-guest.c
@@ -209,7 +209,20 @@ static long tdx_get_report0(struct tdx_report_req __user *req)
/* Size of the header metadata plus the largest possible raw Quote. */
static size_t get_quote_buf_size(void)
{
- return TDX_DEFAULT_QUOTE_SIZE;
+ size_t buf_size;
+ u64 max_size;
+
+ /* Start with the default buffer size, which includes the header */
+ buf_size = TDX_DEFAULT_QUOTE_SIZE;
+
+ /*
+ * Override the default when the TDX module reports a size. Add room
+ * for the header metadata. The size is fixed during TD runtime.
+ */
+ if (!tdx_get_max_quote_size(&max_size))
+ buf_size = struct_size_t(struct tdx_quote_buf, data, max_size);
+
+ return buf_size;
}
static void free_quote_buf(struct tdx_quote_buf *buf)
next prev parent reply other threads:[~2026-10-02 16:29 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-30 10:30 [PATCH v6 0/6] tdx-guest: Make " Peter Fang
2026-09-30 10:30 ` [PATCH v6 1/6] x86/tdx: Take the Quote buffer as a generic pointer Peter Fang
2026-10-02 11:54 ` [tip: x86/tdx] " tip-bot2 for Peter Fang
2026-10-02 16:29 ` tip-bot2 for Peter Fang
2026-09-30 10:30 ` [PATCH v6 2/6] virt: tdx-guest: Give the Quote buffer an explicit type Peter Fang
2026-10-02 11:54 ` [tip: x86/tdx] " tip-bot2 for Peter Fang
2026-10-02 16:29 ` tip-bot2 for Peter Fang
2026-09-30 10:30 ` [PATCH v6 3/6] virt: tdx-guest: Calculate the Quote buffer size safely Peter Fang
2026-10-02 11:54 ` [tip: x86/tdx] " tip-bot2 for Peter Fang
2026-10-02 16:29 ` tip-bot2 for Peter Fang
2026-09-30 10:30 ` [PATCH v6 4/6] virt: tdx-guest: Add a helper for the Quote buffer size Peter Fang
2026-09-30 22:14 ` Edgecombe, Rick P
2026-09-30 22:52 ` Peter Fang
2026-09-30 22:58 ` Edgecombe, Rick P
2026-10-02 11:54 ` [tip: x86/tdx] " tip-bot2 for Peter Fang
2026-10-02 16:29 ` tip-bot2 for Peter Fang
2026-09-30 10:30 ` [PATCH v6 5/6] x86/tdx: Add a helper to query maximum Quote size Peter Fang
2026-10-02 11:53 ` [tip: x86/tdx] " tip-bot2 for Peter Fang
2026-10-02 16:29 ` tip-bot2 for Peter Fang
2026-09-30 10:30 ` [PATCH v6 6/6] virt: tdx-guest: Make the Quote buffer size dynamic Peter Fang
2026-10-02 11:53 ` [tip: x86/tdx] " tip-bot2 for Peter Fang
2026-10-02 16:29 ` tip-bot2 for Peter Fang [this message]
2026-09-30 22:17 ` [PATCH v6 0/6] tdx-guest: Make " Edgecombe, Rick P
2026-09-30 22:54 ` Peter Fang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=179095858314.3910103.10093912808378605506.tip-bot2@tip-bot2 \
--to=tip-bot2@linutronix.de \
--cc=dave.hansen@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=peter.fang@intel.com \
--cc=rick.p.edgecombe@intel.com \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®