diff options
Diffstat (limited to 'drivers/char/tpm/tpm_eventlog_efi.c')
| -rw-r--r-- | drivers/char/tpm/tpm_eventlog_efi.c | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/drivers/char/tpm/tpm_eventlog_efi.c b/drivers/char/tpm/tpm_eventlog_efi.c deleted file mode 100644 index e3f9ffd341d2..000000000000 --- a/drivers/char/tpm/tpm_eventlog_efi.c +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (C) 2017 Google - * - * Authors: - * Thiebaud Weksteen <[email protected]> - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version - * 2 of the License, or (at your option) any later version. - * - */ - -#include <linux/efi.h> -#include <linux/tpm_eventlog.h> - -#include "tpm.h" - -/* read binary bios log from EFI configuration table */ -int tpm_read_log_efi(struct tpm_chip *chip) -{ - - struct linux_efi_tpm_eventlog *log_tbl; - struct tpm_bios_log *log; - u32 log_size; - u8 tpm_log_version; - - if (!(chip->flags & TPM_CHIP_FLAG_TPM2)) - return -ENODEV; - - if (efi.tpm_log == EFI_INVALID_TABLE_ADDR) - return -ENODEV; - - log = &chip->log; - - log_tbl = memremap(efi.tpm_log, sizeof(*log_tbl), MEMREMAP_WB); - if (!log_tbl) { - pr_err("Could not map UEFI TPM log table !\n"); - return -ENOMEM; - } - - log_size = log_tbl->size; - memunmap(log_tbl); - - log_tbl = memremap(efi.tpm_log, sizeof(*log_tbl) + log_size, - MEMREMAP_WB); - if (!log_tbl) { - pr_err("Could not map UEFI TPM log table payload!\n"); - return -ENOMEM; - } - - /* malloc EventLog space */ - log->bios_event_log = kmalloc(log_size, GFP_KERNEL); - if (!log->bios_event_log) - goto err_memunmap; - memcpy(log->bios_event_log, log_tbl->log, log_size); - log->bios_event_log_end = log->bios_event_log + log_size; - - tpm_log_version = log_tbl->version; - memunmap(log_tbl); - return tpm_log_version; - -err_memunmap: - memunmap(log_tbl); - return -ENOMEM; -} |