From 8754bcde0a147dde61f4536c62059a26c6e6e42c Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Thu, 28 May 2020 07:48:10 -0500 Subject: Linux v5.6.15 Signed-off-by: Justin M. Forbes --- ...vent-log-version-before-reading-final-eve.patch | 81 ---------------------- 1 file changed, 81 deletions(-) delete mode 100644 tpm-check-event-log-version-before-reading-final-eve.patch (limited to 'tpm-check-event-log-version-before-reading-final-eve.patch') diff --git a/tpm-check-event-log-version-before-reading-final-eve.patch b/tpm-check-event-log-version-before-reading-final-eve.patch deleted file mode 100644 index 9668c807b..000000000 --- a/tpm-check-event-log-version-before-reading-final-eve.patch +++ /dev/null @@ -1,81 +0,0 @@ -From MAILER-DAEMON Thu May 14 17:38:32 2020 -From: Loïc Yhuel -To: linux-integrity@vger.kernel.org -Cc: matthewgarrett@google.com, ardb@kernel.org, jarkko.sakkinen@linux.intel.com, javierm@redhat.com, Loïc Yhuel -Subject: [PATCH] tpm: check event log version before reading final events -Date: Tue, 12 May 2020 06:01:13 +0200 -Message-Id: <20200512040113.277768-1-loic.yhuel@gmail.com> -Sender: linux-integrity-owner@vger.kernel.org -List-ID: -X-Mailing-List: linux-integrity@vger.kernel.org -MIME-Version: 1.0 -Content-Type: text/plain; charset="utf-8" -Content-Transfer-Encoding: 8bit - -This fixes the boot issues since 5.3 on several Dell models when the TPM -is enabled. Depending on the exact grub binary, booting the kernel would -freeze early, or just report an error parsing the final events log. - -We get an event log in the SHA-1 format, which doesn't have a -tcg_efi_specid_event_head in the first event, and there is a final events -table which doesn't match the crypto agile format. -__calc_tpm2_event_size reads bad "count" and "efispecid->num_algs", and -either fails, or loops long enough for the machine to be appear frozen. - -So we now only parse the final events table, which is per the spec always -supposed to be in the crypto agile format, when we got a event log in this -format. - -Fixes: 166a2809d65b2 ("tpm: Don't duplicate events from the final event log in the TCG2 log") -Fixes: c46f3405692de ("tpm: Reserve the TPM final events table") -Signed-off-by: Loïc Yhuel -Reviewed-by: Javier Martinez Canillas -Reviewed-by: Jerry Snitselaar -Reviewed-by: Matthew Garrett -Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1779611 ---- - drivers/firmware/efi/libstub/tpm.c | 5 +++-- - drivers/firmware/efi/tpm.c | 3 ++- - 2 files changed, 5 insertions(+), 3 deletions(-) - -diff --git a/drivers/firmware/efi/libstub/tpm.c b/drivers/firmware/efi/libstub/tpm.c -index 1d59e103a2e3..e9a684637b70 100644 ---- a/drivers/firmware/efi/libstub/tpm.c -+++ b/drivers/firmware/efi/libstub/tpm.c -@@ -54,7 +54,7 @@ void efi_retrieve_tpm2_eventlog(void) - efi_status_t status; - efi_physical_addr_t log_location = 0, log_last_entry = 0; - struct linux_efi_tpm_eventlog *log_tbl = NULL; -- struct efi_tcg2_final_events_table *final_events_table; -+ struct efi_tcg2_final_events_table *final_events_table = NULL; - unsigned long first_entry_addr, last_entry_addr; - size_t log_size, last_entry_size; - efi_bool_t truncated; -@@ -127,7 +127,8 @@ void efi_retrieve_tpm2_eventlog(void) - * Figure out whether any events have already been logged to the - * final events structure, and if so how much space they take up - */ -- final_events_table = get_efi_config_table(LINUX_EFI_TPM_FINAL_LOG_GUID); -+ if (version == EFI_TCG2_EVENT_LOG_FORMAT_TCG_2) -+ final_events_table = get_efi_config_table(LINUX_EFI_TPM_FINAL_LOG_GUID); - if (final_events_table && final_events_table->nr_events) { - struct tcg_pcr_event2_head *header; - int offset; -diff --git a/drivers/firmware/efi/tpm.c b/drivers/firmware/efi/tpm.c -index 55b031d2c989..77e101a395e7 100644 ---- a/drivers/firmware/efi/tpm.c -+++ b/drivers/firmware/efi/tpm.c -@@ -62,7 +62,8 @@ int __init efi_tpm_eventlog_init(void) - tbl_size = sizeof(*log_tbl) + log_tbl->size; - memblock_reserve(efi.tpm_log, tbl_size); - -- if (efi.tpm_final_log == EFI_INVALID_TABLE_ADDR) -+ if (efi.tpm_final_log == EFI_INVALID_TABLE_ADDR || -+ log_tbl->version != EFI_TCG2_EVENT_LOG_FORMAT_TCG_2) - goto out; - - final_tbl = early_memremap(efi.tpm_final_log, sizeof(*final_tbl)); --- -2.26.2 - - -- cgit