mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-23 17:58:14 -04:00
x86/virt/tdx: Refresh TDX module version after update
The kernel exposes the TDX module version through sysfs so userspace can check update compatibility. That information needs to remain accurate across runtime updates. A runtime update may change the module's update_version, so refresh the cached version right after a successful update. Drop __ro_after_init from tdx_sysinfo because it is now updated at runtime. Do not refresh the rest of tdx_sysinfo, even if some values change across updates. TDX module updates are backward compatible, so existing tdx_sysinfo consumers, such as KVM, can continue to operate without seeing the new values. [ dhansen: trim changelog ] Signed-off-by: Chao Gao <chao.gao@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/20260520133909.409394-22-chao.gao@intel.com
This commit is contained in:
@@ -67,7 +67,7 @@ static struct tdmr_info_list tdx_tdmr_list;
|
||||
/* All TDX-usable memory regions. Protected by mem_hotplug_lock. */
|
||||
static LIST_HEAD(tdx_memlist);
|
||||
|
||||
static struct tdx_sys_info tdx_sysinfo __ro_after_init;
|
||||
static struct tdx_sys_info tdx_sysinfo;
|
||||
|
||||
static DEFINE_RAW_SPINLOCK(sysinit_lock);
|
||||
|
||||
@@ -1321,6 +1321,13 @@ int tdx_module_run_update(void)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = get_tdx_sys_info_version(&tdx_sysinfo.version);
|
||||
/*
|
||||
* Only fails if there is something unexpected
|
||||
* and severely wrong with the module.
|
||||
*/
|
||||
WARN_ON_ONCE(ret);
|
||||
|
||||
tdx_module_state.initialized = true;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
* Include this file to other C file instead.
|
||||
*/
|
||||
|
||||
static __init int get_tdx_sys_info_version(struct tdx_sys_info_version *sysinfo_version)
|
||||
static int get_tdx_sys_info_version(struct tdx_sys_info_version *sysinfo_version)
|
||||
{
|
||||
int ret = 0;
|
||||
u64 val;
|
||||
|
||||
Reference in New Issue
Block a user