Message ID | 20240913231954.20081-3-gourry@gourry.net |
---|---|
State | New |
Headers | show |
Series | libstub,tpm: fix small bugs and improve error reporting | expand |
(cc Dave) On Sat, 14 Sept 2024 at 15:26, Gregory Price <gourry@gourry.net> 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@gourry.net> > --- > drivers/firmware/efi/tpm.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/firmware/efi/tpm.c b/drivers/firmware/efi/tpm.c > index 9c3613e6af15..b0cc2cc11d7e 100644 > --- a/drivers/firmware/efi/tpm.c > +++ b/drivers/firmware/efi/tpm.c > @@ -61,7 +61,12 @@ 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); > + ret = -ENOMEM; > + goto out; > + } > Given the discussion in the other thread, I wonder if this should be efi_mem_reserve() instead - might as well fix that too. Dave?
On 16/09/2024 09:29, Ard Biesheuvel wrote: > (cc Dave) > > On Sat, 14 Sept 2024 at 15:26, Gregory Price <gourry@gourry.net> 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@gourry.net> >> --- >> drivers/firmware/efi/tpm.c | 7 ++++++- >> 1 file changed, 6 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/firmware/efi/tpm.c b/drivers/firmware/efi/tpm.c >> index 9c3613e6af15..b0cc2cc11d7e 100644 >> --- a/drivers/firmware/efi/tpm.c >> +++ b/drivers/firmware/efi/tpm.c >> @@ -61,7 +61,12 @@ 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); >> + ret = -ENOMEM; >> + goto out; >> + } >> > > Given the discussion in the other thread, I wonder if this should be > efi_mem_reserve() instead - might as well fix that too. > > Dave? I dont believe efi_mem_reserve is needed after your patch in https://lore.kernel.org/all/20240912155159.1951792-2-ardb+git@google.com/ which will cover both kexec_load and kexec_file_load cases. Thanks, Usama
diff --git a/drivers/firmware/efi/tpm.c b/drivers/firmware/efi/tpm.c index 9c3613e6af15..b0cc2cc11d7e 100644 --- a/drivers/firmware/efi/tpm.c +++ b/drivers/firmware/efi/tpm.c @@ -61,7 +61,12 @@ 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); + ret = -ENOMEM; + goto out; + } if (efi.tpm_final_log == EFI_INVALID_TABLE_ADDR) { pr_info("TPM Final Events table not present\n");
tpm code currently ignores a relevant failure case silently. Add an error to make this failure non-silent. Signed-off-by: Gregory Price <gourry@gourry.net> --- drivers/firmware/efi/tpm.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)