[PATCH v1 1/8] x86/virt/tdx: Stop treating tdx_global_metadata.h as auto-generated

Chao Gao <[email protected]>
Newsgroups dev.linux.lists.linux-coco,org.kernel.vger.kvm,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
From: Dave Hansen <[email protected]>

The TDX module exposes its capabilities and limits through "Global
Scope Metadata" fields, defined in the Intel TDX Module ABI spec.
The kernel mirrors a small subset of those fields in C structures
(for example, struct tdx_sys_info_version/features). Those structures
are populated by reading each field via the TDH.SYS.RD SEAMCALL.

Today the header that holds these structures is generated by an
out-of-tree script from a JSON file listing all of the TDX module's
metadata.  That made it trivial to add a new field, but everything
else suffered for it:

  - The header is opaque to anyone who doesn't have the script and
    the JSON file handy, and the "Automatically generated" tag tells
    reviewers their edits will be clobbered.
  - The script ships outside the tree, so reproducing changes
    requires fetching it from a mailing list link.
  - The structures are short and stable; the script's value over
    a hand-edited header is small.

In preparation for switching to a hand-maintained implementation,
mark the header as such:

  - Drop the "Automatically generated" comment.
  - Rename the header guard to a non-"AUTO_GENERATED" name following
    the usual asm/ convention.
  - Add a comment describing what the structures are and how they
    are populated.

No functional change intended.

Assisted-by: Claude:claude-opus-5
Not-yet-signed-off-by: Dave Hansen <[email protected]>
Signed-off-by: Chao Gao <[email protected]>
---
 arch/x86/include/asm/tdx_global_metadata.h | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/arch/x86/include/asm/tdx_global_metadata.h b/arch/x86/include/asm/tdx_global_metadata.h
index 41150d546589..a86be9e5ec77 100644
--- a/arch/x86/include/asm/tdx_global_metadata.h
+++ b/arch/x86/include/asm/tdx_global_metadata.h
@@ -1,10 +1,15 @@
 /* SPDX-License-Identifier: GPL-2.0 */
-/* Automatically generated TDX global metadata structures. */
-#ifndef _X86_VIRT_TDX_AUTO_GENERATED_TDX_GLOBAL_METADATA_H
-#define _X86_VIRT_TDX_AUTO_GENERATED_TDX_GLOBAL_METADATA_H
+#ifndef _ASM_X86_TDX_GLOBAL_METADATA_H
+#define _ASM_X86_TDX_GLOBAL_METADATA_H
 
 #include <linux/types.h>
 
+/*
+ * TDX module "Global Scope Metadata" as documented in the Intel TDX
+ * Module ABI spec. Each sub-structure below corresponds to one TDX
+ * metadata "Class"; its members are populated via TDH.SYS.RD SEAMCALLs.
+ */
+
 struct tdx_sys_info_version {
 	u16 minor_version;
 	u16 major_version;
@@ -52,4 +57,4 @@ struct tdx_sys_info {
 	struct tdx_sys_info_td_conf td_conf;
 };
 
-#endif
+#endif /* _ASM_X86_TDX_GLOBAL_METADATA_H */
-- 
2.52.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.