Re: [PATCH 2/6] tpm: do not ignore memblock_reserve return value

From: Gregory Price
Date: Fri Sep 13 2024 - 08:59:08 EST


On Fri, Sep 13, 2024 at 10:02:32AM +0300, Ilias Apalodimas wrote:
> Hi Gregory,
>
> On Fri, 6 Sept 2024 at 23:28, Gregory Price <gourry@xxxxxxxxxx> wrote:
> >
> > tpm code currently ignores a relevant failure case silently.
> > Add an error to make this failure non-silent.
> >
> > Signed-off-by: Gregory Price <gourry@xxxxxxxxxx>
> > ---
> > drivers/firmware/efi/tpm.c | 6 +++++-
> > 1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/firmware/efi/tpm.c b/drivers/firmware/efi/tpm.c
> > index 9c3613e6af15..6e03eed0dc6f 100644
> > --- a/drivers/firmware/efi/tpm.c
> > +++ b/drivers/firmware/efi/tpm.c
> > @@ -61,7 +61,11 @@ int __init efi_tpm_eventlog_init(void)
> > }
> >
> > tbl_size = sizeof(*log_tbl) + log_tbl->size;
> > - memblock_reserve(efi.tpm_log, tbl_size);
> > + if (memblock_reserve(efi.tpm_log, tbl_size)) {
> > + pr_err("TPM Event Log memblock reserve fails (0x%lx, 0x%x)\n",
> > + efi.tpm_log, tbl_size);
> > + goto out;
> > + }
>
> ret is going to be 0 here. I haven't followed the rest of the code and
> where this function is used, but you probably need to return -ENOMEM
>

good catch, will send v2

> Thanks
> /Ilias
> >
> > if (efi.tpm_final_log == EFI_INVALID_TABLE_ADDR) {
> > pr_info("TPM Final Events table not present\n");
> > --
> > 2.43.0
> >