On 12/24/24 17:01, Raymond Mao wrote:
From: Ilias Apalodimas <ilias.apalodi...@linaro.org>
When the TCG2 protocol installation fails, we are trying to remove
all the objects we created in tcg2_uninit().
However, there are cases when this function runs before the config
table was installed. So instead of printing an error unconditionally
check against EFI_NOT_FOUND and don't print anything if the table wasn't
installed to begin with.
Signed-off-by: Ilias Apalodimas <ilias.apalodi...@linaro.org>
Signed-off-by: Raymond Mao <raymond....@linaro.org>
---
Changes in v2
- None.
lib/efi_loader/efi_tcg2.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/efi_loader/efi_tcg2.c b/lib/efi_loader/efi_tcg2.c
index 572c6b5bf6..a15c73162e 100644
--- a/lib/efi_loader/efi_tcg2.c
+++ b/lib/efi_loader/efi_tcg2.c
@@ -791,7 +791,7 @@ static void tcg2_uninit(void)
efi_status_t ret;
ret = efi_install_configuration_table(&efi_guid_final_events, NULL);
- if (ret != EFI_SUCCESS)
+ if (ret != EFI_SUCCESS && ret != EFI_NOT_FOUND)
log_err("Failed to delete final events config table\n");
tcg2_uninit() is called after another problem has occurred.
The user probably is much more interested why efi_tcg2_register() failed
but and less why this secondary issue occurred.
We can drop this message completely.
@Ilias, Raymond
Beyond this patch the following needs to be fixed:
The TCG2 driver should open the TCG2 protocol with BY_DRIVER to ensure
that it cannot be uninstalled without taking down the driver.
Best regards
Heinrich
efi_free_pool(event_log.buffer);