> On Dec 11, 2024, at 6:26 AM, Stefan Berger <stefanb@xxxxxxxxxxxxx> wrote: > > The TPM2 ACPI BIOS eventlog of a particular machine indicates that the > length of the log is 4MB, even though the actual length of its useful data, > when dumped, are only 69kb. To avoid allocating excessive amounts of memory > for the event log, limit the size of any eventlog to 128kb. This should be > sufficient memory and also not unnecessarily truncate event logs on any > other machine. > > Reported-by: Andy Liang <andy.liang@xxxxxxx> > Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219495 > Cc: Takashi Iwai <tiwai@xxxxxxx> > Signed-off-by: Stefan Berger <stefanb@xxxxxxxxxxxxx> > --- > drivers/char/tpm/eventlog/acpi.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/char/tpm/eventlog/acpi.c b/drivers/char/tpm/eventlog/acpi.c > index 69533d0bfb51..701fd7d4cc28 100644 > --- a/drivers/char/tpm/eventlog/acpi.c > +++ b/drivers/char/tpm/eventlog/acpi.c > @@ -26,6 +26,8 @@ > #include "../tpm.h" > #include "common.h" > > +#define MAX_TPM_LOG_LEN (128 * 1024) > + > struct acpi_tcpa { > struct acpi_table_header hdr; > u16 platform_class; > @@ -135,6 +137,12 @@ int tpm_read_log_acpi(struct tpm_chip *chip) > return -EIO; > } > > + if (len > MAX_TPM_LOG_LEN) { > + dev_warn(&chip->dev, "Excessive TCPA log len %llu truncated to %u bytes\n", > + len, MAX_TPM_LOG_LEN); > + len = MAX_TPM_LOG_LEN; > + } > + > /* malloc EventLog space */ > log->bios_event_log = devm_kmalloc(&chip->dev, len, GFP_KERNEL); > if (!log->bios_event_log) > -- > 2.43.0 > Tested-by: Andy Liang <andy.liang@xxxxxxx>