Re: [PATCH] tpm: tis: Increase the default for timeout B

From: Jarkko Sakkinen
Date: Thu Apr 03 2025 - 14:49:15 EST


On Thu, Apr 03, 2025 at 08:25:05PM +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.
>
> Timeout C is retried since
> commit de9e33df7762 ("tpm, tpm_tis: Workaround failed command reception on Infineon devices")
>
> Timeout B still needs to be extended.
>
> Link: https://lore.kernel.org/linux-integrity/Z5pI07m0Muapyu9w@xxxxxxxxxxxxxxx/
> Signed-off-by: Michal Suchanek <msuchanek@xxxxxxx>
> ---
> V2: Only extend timeout B

git format-patch --v2 ;-)

NP, but use --v3 next time...

> ---
> drivers/char/tpm/tpm_tis_core.h | 2 +-
> include/linux/tpm.h | 2 +-
> 2 files 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..c272c25eb9d4 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, /* 4 sec */

nit: secs (that said, don't care that much)

> TIS_TIMEOUT_MIN_ATML = 14700, /* usecs */
> TIS_TIMEOUT_MAX_ATML = 15000, /* usecs */
> };
> diff --git a/include/linux/tpm.h b/include/linux/tpm.h
> index 6c3125300c00..3db0b6a87d45 100644
> --- a/include/linux/tpm.h
> +++ b/include/linux/tpm.h
> @@ -224,7 +224,7 @@ enum tpm2_const {
>
> enum tpm2_timeouts {
> TPM2_TIMEOUT_A = 750,
> - TPM2_TIMEOUT_B = 2000,
> + TPM2_TIMEOUT_B = 4000,
> TPM2_TIMEOUT_C = 200,
> TPM2_TIMEOUT_D = 30,
> TPM2_DURATION_SHORT = 20,
> --
> 2.47.1
>

Have you tested with:

https://web.git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd.git/commit/?id=de9e33df7762abbfc2a1568291f2c3a3154c6a9d

?

BR, Jarkko