diff options
author | Kai Huang <kai.huang@intel.com> | 2024-12-14 18:15:43 +0300 |
---|---|---|
committer | Dave Hansen <dave.hansen@linux.intel.com> | 2024-12-19 01:36:01 +0300 |
commit | c4e0862a62c059498000914305ae60f9cbd0818a (patch) | |
tree | c9cc479fb673a172cfb4e114bf57e3326606fa3b /net/switchdev/switchdev.c | |
parent | e8aa393b0ada3b5ce1b3e8475b02e90e5dce6841 (diff) | |
download | linux-c4e0862a62c059498000914305ae60f9cbd0818a.tar.xz |
x86/virt/tdx: Start to track all global metadata in one structure
The TDX module provides a set of "Global Metadata Fields". They report
things like TDX module version, supported features, and fields related
to create/run TDX guests and so on.
Today the kernel only reads "TD Memory Region" (TDMR) related fields for
module initialization. KVM will need to read additional metadata fields
to run TDX guests. Move towards having the TDX host core-kernel provide
a centralized, canonical, and immutable structure for the global
metadata that comes out from the TDX module for all kernel components to
use.
As the first step, introduce a new 'struct tdx_sys_info' to track all
global metadata fields.
TDX categorizes global metadata fields into different "Classes". E.g.,
the TDMR related fields are under class "TDMR Info". Instead of making
'struct tdx_sys_info' a plain structure to contain all metadata fields,
organize them in smaller structures based on the "Class".
This allows those metadata fields to be used in finer granularity thus
makes the code clearer. E.g., construct_tdmrs() can just take the
structure which contains "TDMR Info" metadata fields.
Add get_tdx_sys_info() as the placeholder to read all metadata fields.
Have it only call get_tdx_sys_info_tdmr() to read TDMR related fields
for now.
Place get_tdx_sys_info() as the first step of init_tdx_module() to
enable early prerequisite checks on the metadata to support early module
initialization abort. This results in moving get_tdx_sys_info_tdmr() to
be before build_tdx_memlist(), but this is fine because there are no
dependencies between these two functions.
Signed-off-by: Kai Huang <kai.huang@intel.com>
Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Reviewed-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Link: https://lore.kernel.org/all/bfacb4e90527cf79d4be0d1753e6f318eea21118.1734188033.git.kai.huang%40intel.com
Diffstat (limited to 'net/switchdev/switchdev.c')
0 files changed, 0 insertions, 0 deletions