linux/drivers/char/tpm
Michal Suchanek 2f661f71fd tpm: tis: Double the timeout B to 4s
With some Infineon chips the timeouts in tpm_tis_send_data (both B and
C) can reach up to about 2250 ms.

Timeout C is retried since
commit de9e33df77 ("tpm, tpm_tis: Workaround failed command reception on Infineon devices")

Timeout B still needs to be extended.

The problem is most commonly encountered with context related operation
such as load context/save context. These are issued directly by the
kernel, and there is no retry logic for them.

When a filesystem is set up to use the TPM for unlocking the boot fails,
and restarting the userspace service is ineffective. This is likely
because ignoring a load context/save context result puts the real TPM
state and the TPM state expected by the kernel out of sync.

Chips known to be affected:
tpm_tis IFX1522:00: 2.0 TPM (device-id 0x1D, rev-id 54)
Description: SLB9672
Firmware Revision: 15.22

tpm_tis MSFT0101:00: 2.0 TPM (device-id 0x1B, rev-id 22)
Firmware Revision: 7.83

tpm_tis MSFT0101:00: 2.0 TPM (device-id 0x1A, rev-id 16)
Firmware Revision: 5.63

Link: https://lore.kernel.org/linux-integrity/Z5pI07m0Muapyu9w@kitsune.suse.cz/
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
2025-05-15 04:49:15 +03:00
..
eventlog tpm: Change to kvalloc() in eventlog/acpi.c 2025-01-23 10:52:23 +02:00
st33zp24 tpm: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-09-17 18:56:37 +03:00
Kconfig tpm_crb: ffa_tpm: Implement driver compliant to CRB over FF-A 2025-03-27 15:34:05 +02:00
Makefile tpm_crb: ffa_tpm: Implement driver compliant to CRB over FF-A 2025-03-27 15:34:05 +02:00
tpm-buf.c char: tpm: tpm-buf: Add sanity check fallback in read helpers 2025-05-15 04:47:14 +03:00
tpm-chip.c tpm: End any active auth session before shutdown 2025-03-27 15:34:05 +02:00
tpm-dev-common.c treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
tpm-dev.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
tpm-dev.h
tpm-interface.c tpm: Make chip->{status,cancel,req_canceled} opt 2025-03-27 17:10:43 +02:00
tpm-sysfs.c tpm: add the null key name as a sysfs export 2024-05-09 22:30:52 +03:00
tpm.h tpm: Switch to new Intel CPU model defines 2024-06-05 04:55:04 +03:00
tpm1-cmd.c
tpm2-cmd.c tpm: Lazily flush auth session when getting random data 2025-03-27 15:34:04 +02:00
tpm2-sessions.c tpm: Mask TPM RC in tpm2_start_auth_session() 2025-05-15 04:47:14 +03:00
tpm2-space.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
tpm_atmel.c tpm: atmel: Drop PPC64 specific MMIO setup 2024-11-22 00:56:50 +02:00
tpm_crb.c tpm_crb: Add support for the ARM FF-A start method 2025-03-27 15:34:05 +02:00
tpm_crb_ffa.c tpm_crb: ffa_tpm: Implement driver compliant to CRB over FF-A 2025-03-27 15:34:05 +02:00
tpm_crb_ffa.h tpm_crb: ffa_tpm: Implement driver compliant to CRB over FF-A 2025-03-27 15:34:05 +02:00
tpm_ftpm_tee.c tpm: Make chip->{status,cancel,req_canceled} opt 2025-03-27 17:10:43 +02:00
tpm_ftpm_tee.h tpm/tpm_ftpm_tee: fix struct ftpm_tee_private documentation 2025-03-27 15:34:05 +02:00
tpm_i2c_atmel.c tpm: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-09-17 18:56:37 +03:00
tpm_i2c_infineon.c
tpm_i2c_nuvoton.c
tpm_ibmvtpm.c tpm: ibmvtpm: Set TPM_OPS_AUTO_STARTUP flag on driver 2024-11-22 00:48:26 +02:00
tpm_ibmvtpm.h
tpm_infineon.c char: tpm: Keep TPM_INF_IO_PORT define for HAS_IOPORT=n 2024-05-09 22:30:50 +03:00
tpm_nsc.c
tpm_ppi.c
tpm_tis.c Get rid of 'remove_new' relic from platform driver struct 2024-12-01 15:12:43 -08:00
tpm_tis_core.c tpm, tpm_tis: Workaround failed command reception on Infineon devices 2025-03-27 15:34:05 +02:00
tpm_tis_core.h tpm: tis: Double the timeout B to 4s 2025-05-15 04:49:15 +03:00
tpm_tis_i2c.c tpm: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-09-17 18:56:37 +03:00
tpm_tis_i2c_cr50.c char: tpm: cr50: Add new device/vendor ID 0x50666666 2024-11-22 00:48:27 +02:00
tpm_tis_spi.h
tpm_tis_spi_cr50.c
tpm_tis_spi_main.c tpm_tis_spi: add missing attpm20p SPI device ID entry 2024-07-01 15:50:02 +00:00
tpm_tis_synquacer.c Get rid of 'remove_new' relic from platform driver struct 2024-12-01 15:12:43 -08:00
tpm_vtpm_proxy.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
tpmrm-dev.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
xen-tpmfront.c