The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: Dave Hansen <dave.hansen@intel.com>
To: Chao Gao <chao.gao@intel.com>
Cc: kvm@vger.kernel.org, linux-coco@lists.linux.dev,
	linux-kernel@vger.kernel.org, x86@kernel.org,
	binbin.wu@linux.intel.com, dave.hansen@linux.intel.com,
	djbw@kernel.org, ira.weiny@intel.com, kai.huang@intel.com,
	kas@kernel.org, nik.borisov@suse.com, paulmck@kernel.org,
	pbonzini@redhat.com, reinette.chatre@intel.com,
	rick.p.edgecombe@intel.com, sagis@google.com, seanjc@google.com,
	tony.lindgren@linux.intel.com, vannapurve@google.com,
	vishal.l.verma@intel.com, yilun.xu@linux.intel.com,
	xiaoyao.li@intel.com, yan.y.zhao@intel.com,
	Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>, "H. Peter Anvin" <hpa@zytor.com>
Subject: Re: [PATCH v8 08/21] x86/virt/seamldr: Allocate and populate a module update request
Date: Fri, 8 May 2026 09:48:37 -0700	[thread overview]
Message-ID: <1bff2e14-e550-4e6f-a819-0e9a851413cc@intel.com> (raw)
In-Reply-To: <afyReleDP93DSgQa@intel.com>

On 5/7/26 06:19, Chao Gao wrote:
...
>>> +	/*
>>> +	 * Don't care about user passing the wrong file, but protect
>>> +	 * kernel ABI by preventing accepting garbage.
>>> +	 */
>>> +	if (memcmp(blob->signature, "TDX-BLOB", 8))
>>> +		return ERR_PTR(-EINVAL);
>>
>> Is there really no helper in the kernel anywhere that can safely do the
>> 8-byte compare against two known-to-the-compiler 8-byte-wide fields
>> without hard-coding the 8?
> 
> I couldn't find a helper that automatically derives the comparison
> length from the operands.  'strcmp()' is not suitable here because
> 'blob->signature' is not NUL-terminated.
> 
> Do you mean just avoiding the hard-coded 8, e.g.
> 
> 	if (memcmp(blob->signature, "TDX-BLOB", sizeof(blob->signature)))
> 		return ERR_PTR(-EINVAL);
> 
> or define the 'u8 signature[8]' as a u64 and compare it with a constant, like
> 
> /* Little-endian encoding of "TDX-BLOB" string */
> #define TDX_IMAGE_SIGNATURE	0x424f4c422d584454ULL
> 
> 	if (blob->signature != TDX_IMAGE_SIGNATURE)
> 		return ERR_PTR(-EINVAL);

Either one of those is fine with me. I'd probably do the sizeof()
variant, but no strong preference.

>>> +	struct seamldr_params *params;
>>> +	int module_pg_cnt, sig_pg_cnt;
>>> +	const u8 *sig, *module;
>>> +	int i;
>>> +
>>> +	params = (struct seamldr_params *)get_zeroed_page(GFP_KERNEL);
>>> +	if (!params)
>>> +		return ERR_PTR(-ENOMEM);
>>
>> kzmalloc(PAGE_SIZE, GFP_KERNEL) will save you a cast.
> 
> I noticed that 'kzalloc_obj()' can be used here, which avoids spelling out
> the size and GFP flags explicitly.  So I ended up with:
> 
>     params = kzalloc_obj(*params);

That's fine too.

  reply	other threads:[~2026-05-08 16:48 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20260427152854.101171-1-chao.gao@intel.com>
     [not found] ` <20260427152854.101171-8-chao.gao@intel.com>
     [not found]   ` <06682111-2b63-444e-a431-b8dd0db2b0ab@intel.com>
2026-05-06  2:35     ` [PATCH v8 07/21] coco/tdx-host: Implement firmware upload sysfs ABI for TDX module updates Chao Gao
     [not found] ` <20260427152854.101171-11-chao.gao@intel.com>
     [not found]   ` <0523b07b-2df2-4cf4-bf98-6efe01780698@intel.com>
2026-05-06  2:56     ` [PATCH v8 10/21] x86/virt/seamldr: Shut down the current TDX module Chao Gao
2026-05-06 20:49       ` Dave Hansen
     [not found] ` <20260427152854.101171-12-chao.gao@intel.com>
     [not found]   ` <20f2d821-bfa6-4db2-a968-b5455c7b5007@intel.com>
2026-05-06  6:21     ` [PATCH v8 11/21] x86/virt/tdx: Reset software states during TDX module shutdown Chao Gao
     [not found] ` <20260427152854.101171-16-chao.gao@intel.com>
     [not found]   ` <28be5180-ff74-4e4d-b392-7ba7a9b4c1c0@intel.com>
2026-05-06 12:51     ` [PATCH v8 15/21] x86/virt/tdx: Refresh TDX module version after update Chao Gao
     [not found] ` <20260427152854.101171-10-chao.gao@intel.com>
     [not found]   ` <5dc70847-332d-496f-b0ab-03323eff7118@intel.com>
2026-05-06 13:00     ` [PATCH v8 09/21] x86/virt/seamldr: Introduce skeleton for TDX module updates Chao Gao
2026-05-06 20:43       ` Dave Hansen
     [not found] ` <20260427152854.101171-9-chao.gao@intel.com>
     [not found]   ` <a52c4701-c99d-48d5-9b63-8eb1c0e589f0@intel.com>
2026-05-07 13:19     ` [PATCH v8 08/21] x86/virt/seamldr: Allocate and populate a module update request Chao Gao
2026-05-08 16:48       ` Dave Hansen [this message]
     [not found] ` <20260427152854.101171-18-chao.gao@intel.com>
     [not found]   ` <fc27ad0e-fceb-4eed-bb1c-dbfb5b913bf6@intel.com>
2026-05-08  9:16     ` [PATCH v8 17/21] x86/virt/seamldr: Abort updates on failure Chao Gao
     [not found] ` <20260427152854.101171-19-chao.gao@intel.com>
     [not found]   ` <abd48a30-8d51-4a86-b662-b09afb567dc5@intel.com>
2026-05-08  9:50     ` [PATCH v8 18/21] coco/tdx-host: Don't expose P-SEAMLDR features on CPUs with erratum 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=1bff2e14-e550-4e6f-a819-0e9a851413cc@intel.com \
    --to=dave.hansen@intel.com \
    --cc=binbin.wu@linux.intel.com \
    --cc=bp@alien8.de \
    --cc=chao.gao@intel.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=djbw@kernel.org \
    --cc=hpa@zytor.com \
    --cc=ira.weiny@intel.com \
    --cc=kai.huang@intel.com \
    --cc=kas@kernel.org \
    --cc=kvm@vger.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=pbonzini@redhat.com \
    --cc=reinette.chatre@intel.com \
    --cc=rick.p.edgecombe@intel.com \
    --cc=sagis@google.com \
    --cc=seanjc@google.com \
    --cc=tglx@kernel.org \
    --cc=tony.lindgren@linux.intel.com \
    --cc=vannapurve@google.com \
    --cc=vishal.l.verma@intel.com \
    --cc=x86@kernel.org \
    --cc=xiaoyao.li@intel.com \
    --cc=yan.y.zhao@intel.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox