Morten Linderud
2115c14c93
tpm/eventlog: Don't abort tpm_read_log on faulty ACPI address
...
[ Upstream commit 80a6c216b16d7f5c584d2148c2e4345ea4eb06ce ]
tpm_read_log_acpi() should return -ENODEV when no eventlog from the ACPI
table is found. If the firmware vendor includes an invalid log address
we are unable to map from the ACPI memory and tpm_read_log() returns -EIO
which would abort discovery of the eventlog.
Change the return value from -EIO to -ENODEV when acpi_os_map_iomem()
fails to map the event log.
The following hardware was used to test this issue:
Framework Laptop (Pre-production)
BIOS: INSYDE Corp, Revision: 3.2
TPM Device: NTC, Firmware Revision: 7.2
Dump of the faulty ACPI TPM2 table:
[000h 0000 4] Signature : "TPM2" [Trusted Platform Module hardware interface Table]
[004h 0004 4] Table Length : 0000004C
[008h 0008 1] Revision : 04
[009h 0009 1] Checksum : 2B
[00Ah 0010 6] Oem ID : "INSYDE"
[010h 0016 8] Oem Table ID : "TGL-ULT"
[018h 0024 4] Oem Revision : 00000002
[01Ch 0028 4] Asl Compiler ID : "ACPI"
[020h 0032 4] Asl Compiler Revision : 00040000
[024h 0036 2] Platform Class : 0000
[026h 0038 2] Reserved : 0000
[028h 0040 8] Control Address : 0000000000000000
[030h 0048 4] Start Method : 06 [Memory Mapped I/O]
[034h 0052 12] Method Parameters : 00 00 00 00 00 00 00 00 00 00 00 00
[040h 0064 4] Minimum Log Length : 00010000
[044h 0068 8] Log Address : 000000004053D000
Fixes: 0cf577a03f21 ("tpm: Fix handling of missing event log")
Tested-by: Erkki Eilonen <erkki@bearmetal.eu>
Signed-off-by: Morten Linderud <morten@linderud.pw>
Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-03-17 08:48:59 +01:00
..
2021-12-17 10:30:15 +01:00
2022-12-31 13:14:26 +01:00
2023-03-17 08:48:50 +01:00
2022-01-27 11:04:09 +01:00
2023-03-10 09:39:38 +01:00
2023-03-17 08:48:59 +01:00
2022-06-14 18:36:21 +02:00
2023-03-10 09:39:38 +01:00
2021-05-21 10:09:30 +02:00
2022-06-22 14:21:58 +02:00
2021-03-24 08:26:32 +01:00
2021-06-04 15:35:03 +02:00
2022-10-15 07:59:01 +02:00
2021-07-13 19:21:41 -05:00
2022-10-15 07:59:02 +02:00
2021-03-17 13:16:18 -07:00
2021-07-27 12:17:21 +02:00
2022-04-13 20:59:13 +02:00