All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Jarkko Sakkinen <jarkko@kernel.org>
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: Fri, 03 Jan 2025 17:23:35 +0100	[thread overview]
Message-ID: <87frlzzx14.wl-tiwai@suse.de> (raw)
In-Reply-To: <20241227153911.28128-1-jarkko@kernel.org>

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
 :-)


thanks,

Takashi

  reply	other threads:[~2025-01-03 16:23 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 [this message]
2025-01-06 19:39   ` Jarkko Sakkinen

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=87frlzzx14.wl-tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=akpm@osdl.org \
    --cc=andy.liang@hpe.com \
    --cc=ardb@kernel.org \
    --cc=colin.i.king@gmail.com \
    --cc=jarkko@kernel.org \
    --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 \
    /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.