From: "Jarkko Sakkinen" <jarkko@kernel.org>
To: "Jarkko Sakkinen" <jarkko@kernel.org>,
<linux-integrity@vger.kernel.org>,
"Peter Huewe" <peterhuewe@gmx.de>,
"Jason Gunthorpe" <jgg@ziepe.ca>,
"Colin Ian King" <colin.i.king@gmail.com>,
"Seiji Munetoh" <munetoh@jp.ibm.com>,
"Andrew Morton" <akpm@osdl.org>,
"Reiner Sailer" <sailer@us.ibm.com>,
"Kylene Jo Hall" <kjhall@us.ibm.com>,
"Stefan Berger" <stefanb@us.ibm.com>
Cc: <stable@vger.kernel.org>, "Andy Liang" <andy.liang@hpe.com>,
"Matthew Garrett" <mjg59@srcf.ucam.org>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v6 1/2] tpm: Map the ACPI provided event log
Date: Thu, 26 Dec 2024 22:22:37 +0200 [thread overview]
Message-ID: <D6LWUWNIILWL.1JXPT3L8GOC1H@kernel.org> (raw)
In-Reply-To: <D6LRNN9Q88F8.3EVLQ1JYK3UEW@kernel.org>
On Thu Dec 26, 2024 at 6:18 PM EET, Jarkko Sakkinen wrote:
> On Wed Dec 25, 2024 at 9:32 PM EET, 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 devres_add().
> >
> > Cc: stable@vger.kernel.org # v2.6.16+
> > Fixes: 55a82ab3181b ("[PATCH] tpm: add bios measurement log")
> > Reported-by: Andy Liang <andy.liang@hpe.com>
> > Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219495
> > Suggested-by: Matthew Garrett <mjg59@srcf.ucam.org>
>
> Oops, needs to be dropped from this.
>
> > Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
> > ---
> > v6:
> > * A new patch.
> > ---
> > drivers/char/tpm/eventlog/acpi.c | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/char/tpm/eventlog/acpi.c b/drivers/char/tpm/eventlog/acpi.c
> > index 69533d0bfb51..7cd44a46a0d7 100644
> > --- a/drivers/char/tpm/eventlog/acpi.c
> > +++ b/drivers/char/tpm/eventlog/acpi.c
> > @@ -136,10 +136,12 @@ 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;
> >
> > + devres_add(&chip->dev, log->bios_event_log);
> > +
>
> We either need to git revert 441b7152729f ("tpm: Use managed allocation
> for bios event log") OR alternatively use devm_add_action() creating a
> fix that wastes 16 MiB of memory and obfuscates flows more than needed.
>
> I don't necessarily get how come this is "less intrusive"...
Right, so I guess it's not actually very complicated:
ret = devm_add_action_or_reset(&chip->dev, kvfree, &log->bios_event_log)
if (ret) {
log->bios_event_log = NULL;
return ret;
}
Had not used this API since we used it in tpmm_chip_alloc(). I'll tweak
the patch accordingly...
And since 2/2 becomes a feature patch I'll refine it to do a traverse of
the log so we know the actual size of the populated contents and then
move back on using devm_kmalloc() in that patch (i.e. it will render
out also the fix that the first patch makes).
Not too bad, I can live this.
BR, Jarkko
prev parent reply other threads:[~2024-12-26 20:22 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-25 19:32 [PATCH v6 1/2] tpm: Map the ACPI provided event log Jarkko Sakkinen
2024-12-25 19:32 ` [PATCH v6 2/2] " Jarkko Sakkinen
2024-12-26 16:18 ` [PATCH v6 1/2] " Jarkko Sakkinen
2024-12-26 20:22 ` 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=D6LWUWNIILWL.1JXPT3L8GOC1H@kernel.org \
--to=jarkko@kernel.org \
--cc=akpm@osdl.org \
--cc=andy.liang@hpe.com \
--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=mjg59@srcf.ucam.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 \
/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.