Re: [PATCH] tpm: tis: Increase the default for timeouts B and C
From: Jarkko Sakkinen
Date: Thu Apr 03 2025 - 14:39:45 EST
On Wed, Apr 02, 2025 at 07:21:30PM +0200, Michal Suchanek wrote:
> With some Infineon chips the timeouts in tpm_tis_send_data (both B and
> C) can reach up to about 2250 ms.
>
> Extend the timeout duration to accommodate this.
>
> Link: https://lore.kernel.org/linux-integrity/Z5pI07m0Muapyu9w@xxxxxxxxxxxxxxx/
> Signed-off-by: Michal Suchanek <msuchanek@xxxxxxx>
> ---
> An alternative would be to add an entry to vendor_timeout_overrides but
> I do not know how to determine the chip IDs to put into this table.
> ---
> drivers/char/tpm/tpm_tis_core.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/char/tpm/tpm_tis_core.h b/drivers/char/tpm/tpm_tis_core.h
> index 970d02c337c7..1ff565be2175 100644
> --- a/drivers/char/tpm/tpm_tis_core.h
> +++ b/drivers/char/tpm/tpm_tis_core.h
> @@ -54,7 +54,7 @@ enum tis_int_flags {
> enum tis_defaults {
> TIS_MEM_LEN = 0x5000,
> TIS_SHORT_TIMEOUT = 750, /* ms */
> - TIS_LONG_TIMEOUT = 2000, /* 2 sec */
> + TIS_LONG_TIMEOUT = 4000, /* 2 sec */
/* 4 secs */
> TIS_TIMEOUT_MIN_ATML = 14700, /* usecs */
> TIS_TIMEOUT_MAX_ATML = 15000, /* usecs */
> };
> @@ -64,7 +64,7 @@ enum tis_defaults {
> */
> #define TIS_TIMEOUT_A_MAX max_t(int, TIS_SHORT_TIMEOUT, TPM2_TIMEOUT_A)
> #define TIS_TIMEOUT_B_MAX max_t(int, TIS_LONG_TIMEOUT, TPM2_TIMEOUT_B)
> -#define TIS_TIMEOUT_C_MAX max_t(int, TIS_SHORT_TIMEOUT, TPM2_TIMEOUT_C)
> +#define TIS_TIMEOUT_C_MAX max_t(int, TIS_LONG_TIMEOUT, TPM2_TIMEOUT_C)
> #define TIS_TIMEOUT_D_MAX max_t(int, TIS_SHORT_TIMEOUT, TPM2_TIMEOUT_D)
>
> #define TPM_ACCESS(l) (0x0000 | ((l) << 12))
> --
> 2.47.1
>
>
BR, Jarkko