diff options
author | Jarkko Sakkinen <jarkko@kernel.org> | 2021-06-09 16:26:19 +0300 |
---|---|---|
committer | Jarkko Sakkinen <jarkko@kernel.org> | 2021-06-23 16:51:04 +0300 |
commit | 0178f9d0f60ba07e09bab57381a3ef18e2c1fd7f (patch) | |
tree | 0ecacbae8564628dec57310243f7da34466770a9 /drivers/char/tpm/tpm_tis_core.h | |
parent | 5a118a39ec9207f9b8cddb013ad270c80bc84a1c (diff) | |
download | linux-0178f9d0f60ba07e09bab57381a3ef18e2c1fd7f.tar.xz |
tpm: Replace WARN_ONCE() with dev_err_once() in tpm_tis_status()
Do not tear down the system when getting invalid status from a TPM chip.
This can happen when panic-on-warn is used.
Instead, introduce TPM_TIS_INVALID_STATUS bitflag and use it to trigger
once the error reporting per chip. In addition, print out the value of
TPM_STS for improved forensics.
Link: https://lore.kernel.org/keyrings/YKzlTR1AzUigShtZ@kroah.com/
Fixes: 55707d531af6 ("tpm_tis: Add a check for invalid status")
Cc: stable@vger.kernel.org
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/char/tpm/tpm_tis_core.h')
-rw-r--r-- | drivers/char/tpm/tpm_tis_core.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/char/tpm/tpm_tis_core.h b/drivers/char/tpm/tpm_tis_core.h index 9b2d32a59f67..b2a3c6c72882 100644 --- a/drivers/char/tpm/tpm_tis_core.h +++ b/drivers/char/tpm/tpm_tis_core.h @@ -83,6 +83,7 @@ enum tis_defaults { enum tpm_tis_flags { TPM_TIS_ITPM_WORKAROUND = BIT(0), + TPM_TIS_INVALID_STATUS = BIT(1), }; struct tpm_tis_data { @@ -90,7 +91,7 @@ struct tpm_tis_data { int locality; int irq; bool irq_tested; - unsigned int flags; + unsigned long flags; void __iomem *ilb_base_addr; u16 clkrun_enabled; wait_queue_head_t int_queue; |