All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chao Gao <chao.gao@intel.com>
To: Xu Yilun <yilun.xu@linux.intel.com>
Cc: <linux-coco@lists.linux.dev>, <linux-kernel@vger.kernel.org>,
	<x86@kernel.org>, <reinette.chatre@intel.com>,
	<ira.weiny@intel.com>, <kai.huang@intel.com>,
	<dan.j.williams@intel.com>, <sagis@google.com>,
	<vannapurve@google.com>, <paulmck@kernel.org>,
	<nik.borisov@suse.com>, "Farrah Chen" <farrah.chen@intel.com>,
	"Kirill A. Shutemov" <kas@kernel.org>,
	"Dave Hansen" <dave.hansen@linux.intel.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	"H. Peter Anvin" <hpa@zytor.com>
Subject: Re: [PATCH v2 11/21] x86/virt/seamldr: Allocate and populate a module update request
Date: Fri, 16 Jan 2026 14:14:10 +0800	[thread overview]
Message-ID: <aWnXMiIa8MzQt8qj@intel.com> (raw)
In-Reply-To: <aWc7bq+EiQiME8nl@yilunxu-OptiPlex-7050>

On Wed, Jan 14, 2026 at 02:45:02PM +0800, Xu Yilun wrote:
>> +/* Allocate and populate a seamldr_params */
>> +static struct seamldr_params *alloc_seamldr_params(const void *module, int module_size,
>> +						   const void *sig, int sig_size)
>> +{
>> +	struct seamldr_params *params;
>> +	const u8 *ptr;
>> +	int i;
>> +
>> +	BUILD_BUG_ON(sizeof(struct seamldr_params) != SZ_4K);
>> +	if (module_size > SEAMLDR_MAX_NR_MODULE_4KB_PAGES * SZ_4K)
>> +		return ERR_PTR(-EINVAL);
>> +
>> +	if (!IS_ALIGNED(module_size, SZ_4K) || !IS_ALIGNED(sig_size, SZ_4K) ||
>> +	    !IS_ALIGNED((unsigned long)module, SZ_4K) ||
>> +	    !IS_ALIGNED((unsigned long)sig, SZ_4K))
>> +		return ERR_PTR(-EINVAL);
>> +
>> +	/* seamldr_params accepts one 4KB-page for sigstruct */
>> +	if (sig_size != SZ_4K)
>
>Why we check both IS_ALIGNED(sig_size, SZ_4K) and sig_size != SZ_4K, I
>assume the former is redundant.

Yes. it is redundant.

But in the next version, I will implement an extension that increases the
sigstruct size limit from a single 4KB page to four 4KB pages, so this will
become:

	/* P-SEAMLDR accepts up to 4 4KB pages for sigstruct */
	if (sig_size > 4 * SZ_4K)
		return ERR_PTR(-EINVAL);

>
>> +		return ERR_PTR(-EINVAL);
>> +
>> +	params = (struct seamldr_params *)get_zeroed_page(GFP_KERNEL);
>> +	if (!params)
>> +		return ERR_PTR(-ENOMEM);
>> +
>> +	params->scenario = SEAMLDR_SCENARIO_UPDATE;
>> +	params->sigstruct_pa = (vmalloc_to_pfn(sig) << PAGE_SHIFT) +
>
>This void * buffer comes from FW_UPLOAD callback, which is a kvmalloc
>buffer, so we do vmalloc_to_pfn() here. But that knowledge resides in
>FW_UPLOAD driver context, the kAPI entry, seamldr_install_module()
>doesn't say that. So could we add the kernel-doc to specify this
>"const u8 *data" at ...

Good suggestion. Will do.

  reply	other threads:[~2026-01-16  6:14 UTC|newest]

Thread overview: 120+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-01  2:52 [PATCH v2 00/21] Runtime TDX Module update support Chao Gao
2025-10-01  2:52 ` [PATCH v2 01/21] x86/virt/tdx: Print SEAMCALL leaf numbers in decimal Chao Gao
2026-01-14  7:13   ` Duan, Zhenzhong
2025-10-01  2:52 ` [PATCH v2 02/21] x86/virt/tdx: Use %# prefix for hex values in SEAMCALL error messages Chao Gao
2025-10-01  2:52 ` [PATCH v2 03/21] x86/virt/tdx: Move low level SEAMCALL helpers out of <asm/tdx.h> Chao Gao
2026-01-14  7:27   ` Duan, Zhenzhong
2025-10-01  2:52 ` [PATCH v2 04/21] x86/virt/tdx: Prepare to support P-SEAMLDR SEAMCALLs Chao Gao
2025-11-21  7:53   ` Binbin Wu
2025-12-02  7:23     ` Chao Gao
2026-01-13  9:48   ` Xu Yilun
2026-01-15  7:25     ` Chao Gao
2026-01-14  7:33   ` Duan, Zhenzhong
2026-01-15  5:37     ` Chao Gao
2025-10-01  2:52 ` [PATCH v2 05/21] x86/virt/seamldr: Introduce a wrapper for " Chao Gao
2025-11-21  8:41   ` Binbin Wu
2026-01-13 11:08   ` Xu Yilun
2026-01-15 10:12     ` Chao Gao
2026-01-14  7:47   ` Duan, Zhenzhong
2026-01-15 10:22     ` Chao Gao
2025-10-01  2:52 ` [PATCH v2 06/21] x86/virt/seamldr: Retrieve P-SEAMLDR information Chao Gao
2026-01-14  7:55   ` Duan, Zhenzhong
2025-10-01  2:52 ` [PATCH v2 07/21] coco/tdx-host: Expose P-SEAMLDR information via sysfs Chao Gao
2025-10-30 21:54   ` Sagi Shahar
2025-10-30 23:05     ` dan.j.williams
2025-10-31 14:31       ` Sagi Shahar
2026-01-14  1:50   ` Xu Yilun
2026-01-16  3:15     ` Chao Gao
2025-10-01  2:52 ` [PATCH v2 08/21] coco/tdx-host: Implement FW_UPLOAD sysfs ABI for TDX Module updates Chao Gao
2025-11-24  7:49   ` Binbin Wu
2025-12-02  7:20     ` Chao Gao
2026-01-14  3:08   ` Xu Yilun
2026-01-16  3:31     ` Chao Gao
2025-10-01  2:52 ` [PATCH v2 09/21] x86/virt/seamldr: Block TDX Module updates if any CPU is offline Chao Gao
2025-10-01  2:52 ` [PATCH v2 10/21] x86/virt/seamldr: Verify availability of slots for TDX Module updates Chao Gao
2025-10-01  2:52 ` [PATCH v2 11/21] x86/virt/seamldr: Allocate and populate a module update request Chao Gao
2025-11-27  8:30   ` Binbin Wu
2025-11-27  8:39     ` Binbin Wu
2025-12-02  7:03     ` Chao Gao
2026-01-14  6:45   ` Xu Yilun
2026-01-16  6:14     ` Chao Gao [this message]
2025-10-01  2:52 ` [PATCH v2 12/21] x86/virt/seamldr: Introduce skeleton for TDX Module updates Chao Gao
2025-10-01  2:52 ` [PATCH v2 13/21] x86/virt/seamldr: Abort updates if errors occurred midway Chao Gao
2026-01-14 10:40   ` Xu Yilun
2025-10-01  2:52 ` [PATCH v2 14/21] x86/virt/seamldr: Shut down the current TDX module Chao Gao
2025-12-03  2:24   ` Binbin Wu
2026-01-19  8:41     ` Chao Gao
2025-10-01  2:52 ` [PATCH v2 15/21] x86/virt/tdx: Reset software states after TDX module shutdown Chao Gao
2025-10-01  2:53 ` [PATCH v2 16/21] x86/virt/seamldr: Handle TDX Module update failures Chao Gao
2025-10-28  2:53   ` Chao Gao
2026-01-15  5:37     ` Xu Yilun
2026-01-15  6:24   ` Xu Yilun
2026-01-19  4:55     ` H. Peter Anvin
2026-01-19  5:34       ` Chao Gao
2026-01-19 16:24         ` Dave Hansen
2025-10-01  2:53 ` [PATCH v2 17/21] x86/virt/seamldr: Install a new TDX Module Chao Gao
2026-01-15  6:15   ` Xu Yilun
2026-01-19  0:28     ` Chao Gao
2025-10-01  2:53 ` [PATCH v2 18/21] x86/virt/seamldr: Do TDX per-CPU initialization after updates Chao Gao
2025-10-01  2:53 ` [PATCH v2 19/21] x86/virt/tdx: Establish contexts for the new TDX Module Chao Gao
2025-12-03  3:49   ` Binbin Wu
2026-01-19  8:49     ` Chao Gao
2025-10-01  2:53 ` [PATCH v2 20/21] x86/virt/tdx: Update tdx_sysinfo and check features post-update Chao Gao
2025-12-03  7:41   ` Binbin Wu
2026-01-19  9:24     ` Chao Gao
2026-01-26 21:22       ` dan.j.williams
2025-10-01  2:53 ` [PATCH v2 21/21] x86/virt/tdx: Enable TDX Module runtime updates Chao Gao
2025-10-14 15:32 ` [PATCH v2 00/21] Runtime TDX Module update support Vishal Annapurve
2025-10-15  8:54   ` Reshetova, Elena
2025-10-15 14:19     ` Vishal Annapurve
2025-10-16  6:48       ` Reshetova, Elena
2025-10-15 15:02     ` Dave Hansen
2025-10-16  6:46       ` Reshetova, Elena
2025-10-16 17:47         ` Vishal Annapurve
2025-10-17 10:08           ` Reshetova, Elena
2025-10-18  0:01             ` Vishal Annapurve
2025-10-21 13:42               ` Reshetova, Elena
2025-10-22  7:14               ` Chao Gao
2025-10-22 15:42                 ` Vishal Annapurve
2025-10-23 20:31                   ` Vishal Annapurve
2025-10-23 21:10                     ` Dave Hansen
2025-10-23 22:00                       ` Vishal Annapurve
2025-10-24  7:43                       ` Chao Gao
2025-10-24 18:02                         ` Dave Hansen
2025-10-24 19:40                           ` dan.j.williams
2025-10-24 20:00                             ` Sean Christopherson
2025-10-24 20:14                               ` Dave Hansen
2025-10-24 21:09                                 ` Vishal Annapurve
2025-10-24 20:13                             ` Dave Hansen
2025-10-24 21:12                               ` dan.j.williams
2025-10-24 21:19                                 ` Dave Hansen
2025-10-25  0:54                                   ` Vishal Annapurve
2025-10-25  1:42                                     ` dan.j.williams
2025-10-25 11:55                                       ` Vishal Annapurve
2025-10-25 12:01                                         ` Vishal Annapurve
2025-10-26 21:30                                         ` dan.j.williams
2025-10-26 22:01                                           ` Vishal Annapurve
2025-10-27 18:53                                             ` dan.j.williams
2025-10-28  0:42                                               ` Vishal Annapurve
2025-10-28  2:13                                                 ` dan.j.williams
2025-10-28 17:00                                                   ` Erdem Aktas
2025-10-29  0:56                                                     ` Sean Christopherson
2025-10-29  2:17                                                       ` dan.j.williams
2025-10-29 13:48                                                         ` Sean Christopherson
2025-10-30 17:01                                                           ` Vishal Annapurve
2025-10-31  2:53                                                             ` Chao Gao
2025-11-19 22:44                                                               ` Sagi Shahar
2025-11-20  2:47                                                                 ` Chao Gao
2025-11-20 23:38                                                                   ` Sagi Shahar
2025-10-28 23:48                                                   ` Vishal Annapurve
2025-10-28 20:29                                                 ` dan.j.williams
2025-10-28 20:32                                                   ` dan.j.williams
2025-10-31 16:55 ` Sagi Shahar
2025-10-31 17:57   ` Vishal Annapurve
2025-11-01  2:18     ` Chao Gao
2025-11-01  2:05   ` Chao Gao
2025-11-12 14:09 ` Chao Gao
2026-01-02 20:52   ` Edgecombe, Rick P
2026-01-02 21:15     ` Dave Hansen
2026-01-05  7:54       ` Chao Gao
2026-01-04  1:39     ` Chao Gao

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=aWnXMiIa8MzQt8qj@intel.com \
    --to=chao.gao@intel.com \
    --cc=bp@alien8.de \
    --cc=dan.j.williams@intel.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=farrah.chen@intel.com \
    --cc=hpa@zytor.com \
    --cc=ira.weiny@intel.com \
    --cc=kai.huang@intel.com \
    --cc=kas@kernel.org \
    --cc=linux-coco@lists.linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=nik.borisov@suse.com \
    --cc=paulmck@kernel.org \
    --cc=reinette.chatre@intel.com \
    --cc=sagis@google.com \
    --cc=tglx@linutronix.de \
    --cc=vannapurve@google.com \
    --cc=x86@kernel.org \
    --cc=yilun.xu@linux.intel.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.