From nobody Sun May 24 19:34:47 2026 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1753D1D63F3; Fri, 22 May 2026 17:26:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.142.43.55 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779470780; cv=none; b=YdbqiEWUbMnTOpMDB+g4K5RIUTIp7/RJDn+qV9icT3bguligv59wQYAEE2OMJl8kLNFeCqJph5Dl3S+KZ5KeZQ3kaVcUTnfonYTJSN0MzS5UQ+Rq/DO2gy3/x7Ys5M2Dx9TFdmY6j3QMHJ6oE8CvDw9GwINbkUZuyDZeANIQ3wM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779470780; c=relaxed/simple; bh=SRqkJ6hgQeY2ZJWK09P6Tzv2VnwImh5Ml27SJkhisjI=; h=Date:From:To:Subject:Cc:In-Reply-To:References:MIME-Version: Message-ID:Content-Type; b=aw7bbtY5FgEzu/FUl6ezrXIKxFNGC3ljoLgzzkS6TZqh6XMYl5uAJJZQ8WkX0S9XwOS8JXRoFpIfz2vi4xaZOeNcHTYpHuteT31Lr5Xpal0uS552l+uJDFquT6ofcYvNCRoUz79du+Qh4+5tGh5DTvmaObu1GI/Q/vBJ6fUPiYE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de; spf=pass smtp.mailfrom=linutronix.de; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=WhkICD8d; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=Kg3LyeIj; arc=none smtp.client-ip=193.142.43.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linutronix.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="WhkICD8d"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="Kg3LyeIj" Date: Fri, 22 May 2026 17:26:13 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1779470774; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0M3Q3Ko7ou3moNr7hlDYT6LOEqQK1mOYEQsZL0V9xOM=; b=WhkICD8doDTxpOZwDcGHcogh/y7dKGhHN9gucRWamYSRaoVOXLCFyLIwca11cCMBsslKcb fH1TwYTGbnqhiCcEMxxHN7i1Lf0QXmz5DIn4iyBmosZbB+sShlZIjl8hSazUMFaRzk8Yha zor1Pn4hi/KHRXt++z3awoBqTvOAVCAZvHkCmUmEKzyNGXeu9swT90JF/5bCDVrHYX3bXS tXsE+0YS20iAA3xzJCTRbnb8o+AuTAdWgHjbTt1QMuyM2HunFgOzMs1YDY6adzUcLK3XFQ aJ51ieCaAE5LMSuQZ5OjncaGq9ZHEI2yNLLTqw37wFpkRUXrYHbI0P9cU19K1A== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1779470774; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0M3Q3Ko7ou3moNr7hlDYT6LOEqQK1mOYEQsZL0V9xOM=; b=Kg3LyeIjlec+En55J1EvLHJJ1XhGzexgUX8STgo45FA5HLYId76dN6zPpPVfRfxzWNZPfl V/4yTMcE0wQDbBDg== From: "tip-bot2 for Chao Gao" Sender: tip-bot2@linutronix.de Reply-to: linux-kernel@vger.kernel.org To: linux-tip-commits@vger.kernel.org Subject: [tip: x86/tdx] x86/virt/seamldr: Install a new TDX module Cc: Chao Gao , Dave Hansen , Tony Lindgren , Kai Huang , Xu Yilun , "Kiryl Shutsemau (Meta)" , Rick Edgecombe , x86@kernel.org, linux-kernel@vger.kernel.org In-Reply-To: <20260520222908.843C429A@davehans-spike.ostc.intel.com> References: <20260520222908.843C429A@davehans-spike.ostc.intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-ID: <177947077326.711.12768314298320389801.tip-bot2@tip-bot2> Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails Precedence: bulk Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable The following commit has been merged into the x86/tdx branch of tip: Commit-ID: d909333bf65507cf94b0d2cdb8c837eddd3e2ac1 Gitweb: https://git.kernel.org/tip/d909333bf65507cf94b0d2cdb8c837edd= d3e2ac1 Author: Chao Gao AuthorDate: Wed, 20 May 2026 15:29:08 -07:00 Committer: Dave Hansen CommitterDate: Wed, 20 May 2026 15:37:10 -07:00 x86/virt/seamldr: Install a new TDX module Continue fleshing out the update proces. The old module is shut down and the system is ready for the new module image. Run the SEAMLDR.INSTALL SEAMCALL on all CPUs. Signed-off-by: Chao Gao Signed-off-by: Dave Hansen Reviewed-by: Tony Lindgren Reviewed-by: Kai Huang Reviewed-by: Xu Yilun Reviewed-by: Kiryl Shutsemau (Meta) Reviewed-by: Rick Edgecombe Link: https://patch.msgid.link/20260520133909.409394-19-chao.gao@intel.com Link: https://patch.msgid.link/20260520222908.843C429A@davehans-spike.ostc.= intel.com --- arch/x86/virt/vmx/tdx/seamldr.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/arch/x86/virt/vmx/tdx/seamldr.c b/arch/x86/virt/vmx/tdx/seamld= r.c index 3fe1d39..54fa797 100644 --- a/arch/x86/virt/vmx/tdx/seamldr.c +++ b/arch/x86/virt/vmx/tdx/seamldr.c @@ -22,6 +22,7 @@ =20 /* P-SEAMLDR SEAMCALL leaf function */ #define P_SEAMLDR_INFO 0x8000000000000000 +#define P_SEAMLDR_INSTALL 0x8000000000000001 =20 #define SEAMLDR_MAX_NR_MODULE_PAGES 496 #define SEAMLDR_MAX_NR_SIG_PAGES 1 @@ -89,6 +90,15 @@ int seamldr_get_info(struct seamldr_info *seamldr_info) } EXPORT_SYMBOL_FOR_MODULES(seamldr_get_info, "tdx-host"); =20 +/* Call into P-SEAMLDR to install a TDX module update */ +static int seamldr_install(const struct seamldr_params *params) +{ + struct tdx_module_args args =3D {}; + + args.rcx =3D __pa(params); + return seamldr_call(P_SEAMLDR_INSTALL, &args); +} + #define TDX_IMAGE_VERSION_2 0x200 =20 /* First page of the on-disk module update image: */ @@ -198,6 +208,7 @@ static int init_seamldr_params(struct seamldr_params *p= arams, enum module_update_state { MODULE_UPDATE_START, MODULE_UPDATE_SHUTDOWN, + MODULE_UPDATE_CPU_INSTALL, MODULE_UPDATE_DONE, }; =20 @@ -273,6 +284,9 @@ static int do_seamldr_install_module(void *seamldr_para= ms) if (is_lead_cpu) ret =3D tdx_module_shutdown(); break; + case MODULE_UPDATE_CPU_INSTALL: + ret =3D seamldr_install(seamldr_params); + break; default: break; }