From: "Jarkko Sakkinen" <jarkko@kernel.org>
To: "Takashi Iwai" <tiwai@suse.de>
Cc: <linux-integrity@vger.kernel.org>,
"Peter Huewe" <peterhuewe@gmx.de>,
"Jason Gunthorpe" <jgg@ziepe.ca>,
"Colin Ian King" <colin.i.king@gmail.com>,
"Stefan Berger" <stefanb@us.ibm.com>,
"Andrew Morton" <akpm@osdl.org>,
"Seiji Munetoh" <munetoh@jp.ibm.com>,
"Kylene Jo Hall" <kjhall@us.ibm.com>,
"Reiner Sailer" <sailer@us.ibm.com>,
"Ard Biesheuvel" <ardb@kernel.org>, <stable@vger.kernel.org>,
"Andy Liang" <andy.liang@hpe.com>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v8] tpm: Map the ACPI provided event log
Date: Mon, 06 Jan 2025 21:39:28 +0200 [thread overview]
Message-ID: <D6V8TV20OP76.10AIALB0FV0HF@kernel.org> (raw)
In-Reply-To: <87frlzzx14.wl-tiwai@suse.de>
On Fri Jan 3, 2025 at 6:23 PM EET, Takashi Iwai wrote:
> On Fri, 27 Dec 2024 16:39:09 +0100,
> Jarkko Sakkinen wrote:
> >
> > The following failure was reported:
> >
> > [ 10.693310][ T1] tpm_tis STM0925:00: 2.0 TPM (device-id 0x3, rev-id 0)
> > [ 10.848132][ T1] ------------[ cut here ]------------
> > [ 10.853559][ T1] WARNING: CPU: 59 PID: 1 at mm/page_alloc.c:4727 __alloc_pages_noprof+0x2ca/0x330
> > [ 10.862827][ T1] Modules linked in:
> > [ 10.866671][ T1] CPU: 59 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.12.0-lp155.2.g52785e2-default #1 openSUSE Tumbleweed (unreleased) 588cd98293a7c9eba9013378d807364c088c9375
> > [ 10.882741][ T1] Hardware name: HPE ProLiant DL320 Gen12/ProLiant DL320 Gen12, BIOS 1.20 10/28/2024
> > [ 10.892170][ T1] RIP: 0010:__alloc_pages_noprof+0x2ca/0x330
> > [ 10.898103][ T1] Code: 24 08 e9 4a fe ff ff e8 34 36 fa ff e9 88 fe ff ff 83 fe 0a 0f 86 b3 fd ff ff 80 3d 01 e7 ce 01 00 75 09 c6 05 f8 e6 ce 01 01 <0f> 0b 45 31 ff e9 e5 fe ff ff f7 c2 00 00 08 00 75 42 89 d9 80 e1
> > [ 10.917750][ T1] RSP: 0000:ffffb7cf40077980 EFLAGS: 00010246
> > [ 10.923777][ T1] RAX: 0000000000000000 RBX: 0000000000040cc0 RCX: 0000000000000000
> > [ 10.931727][ T1] RDX: 0000000000000000 RSI: 000000000000000c RDI: 0000000000040cc0
> >
> > Above shows that ACPI pointed a 16 MiB buffer for the log events because
> > RSI maps to the 'order' parameter of __alloc_pages_noprof(). Address the
> > bug with kvmalloc() and devm_add_action_or_reset().
>
> It looks like that the subject doesn't match with the patch
> description?
>
> (snip)
> > --- a/drivers/char/tpm/eventlog/acpi.c
> > +++ b/drivers/char/tpm/eventlog/acpi.c
> > @@ -63,6 +63,11 @@ static bool tpm_is_tpm2_log(void *bios_event_log, u64 len)
> > return n == 0;
> > }
> >
> > +static void tpm_bios_log_free(void *data)
> > +{
> > + kvfree(data);
> > +}
> > +
> > /* read binary bios log */
> > int tpm_read_log_acpi(struct tpm_chip *chip)
> > {
> > @@ -136,10 +141,16 @@ int tpm_read_log_acpi(struct tpm_chip *chip)
> > }
> >
> > /* malloc EventLog space */
> > - log->bios_event_log = devm_kmalloc(&chip->dev, len, GFP_KERNEL);
> > + log->bios_event_log = kvmalloc(len, GFP_KERNEL);
> > if (!log->bios_event_log)
> > return -ENOMEM;
> >
> > + ret = devm_add_action_or_reset(&chip->dev, tpm_bios_log_free, log->bios_event_log);
> > + if (ret) {
> > + log->bios_event_log = NULL;
> > + return ret;
> > + }
> > +
> > log->bios_event_log_end = log->bios_event_log + len;
> >
> > virt = acpi_os_map_iomem(start, len);
>
> I'm afraid that you forgot to correct the remaining devm_kfree() in
> the error path of this function.
>
> (I know it because I initially posted a similar fix in
> https://lore.kernel.org/all/20241107112054.28448-1-tiwai@suse.de/
> Your devm_add_action_or_reset() is a better choice, indeed, though
> :-)
OK, thanks for the remark! I totally forgot your fix when I went on
tripping on over-engineering :-) [better to admit when you go over the
top]
I'll fix this up after I get back on track after holidays (later this
week or early next weeek).
>
>
> thanks,
>
> Takashi
BR, Jarkko
prev parent reply other threads:[~2025-01-06 19:39 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-27 15:39 [PATCH v8] tpm: Map the ACPI provided event log Jarkko Sakkinen
2025-01-03 16:23 ` Takashi Iwai
2025-01-06 19:39 ` Jarkko Sakkinen [this message]
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=D6V8TV20OP76.10AIALB0FV0HF@kernel.org \
--to=jarkko@kernel.org \
--cc=akpm@osdl.org \
--cc=andy.liang@hpe.com \
--cc=ardb@kernel.org \
--cc=colin.i.king@gmail.com \
--cc=jgg@ziepe.ca \
--cc=kjhall@us.ibm.com \
--cc=linux-integrity@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=munetoh@jp.ibm.com \
--cc=peterhuewe@gmx.de \
--cc=sailer@us.ibm.com \
--cc=stable@vger.kernel.org \
--cc=stefanb@us.ibm.com \
--cc=tiwai@suse.de \
/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.