lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 2 Nov 2021 17:20:53 +0200 From: amirmizi6@...il.com To: Eyal.Cohen@...oton.com, jarkko@...nel.org, oshrialkoby85@...il.com, alexander.steffen@...ineon.com, robh+dt@...nel.org, mark.rutland@....com, peterhuewe@....de, jgg@...pe.ca, arnd@...db.de, gregkh@...uxfoundation.org, benoit.houyere@...com, eajames@...ux.ibm.com, joel@....id.au Cc: devicetree@...r.kernel.org, linux-kernel@...r.kernel.org, linux-integrity@...r.kernel.org, oshri.alkoby@...oton.com, tmaimon77@...il.com, gcwilson@...ibm.com, kgoldman@...ibm.com, Dan.Morav@...oton.com, oren.tanami@...oton.com, shmulik.hager@...oton.com, amir.mizinski@...oton.com, Amir Mizinski <amirmizi6@...il.com> Subject: [PATCH v18 3/6] tpm: Handle an exception for TPM Firmware Update mode. From: Amir Mizinski <amirmizi6@...il.com> Add a condition to enable communication with the TPM while the TPM is in firmware update mode. In such a case if power was cut during the TPM firmware update, the driver should ignore the "selftest" command return code (TPM2_RC_UPGRADE or TPM2_RC_COMMAND_CODE) and skip the rest of the TPM initialization sequence. Suggested-by: Benoit Houyere <benoit.houyere@...com> Signed-off-by: Amir Mizinski <amirmizi6@...il.com> --- drivers/char/tpm/tpm2-cmd.c | 4 ++++ include/linux/tpm.h | 1 + 2 files changed, 5 insertions(+) diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c index a25815a..c2b541d 100644 --- a/drivers/char/tpm/tpm2-cmd.c +++ b/drivers/char/tpm/tpm2-cmd.c @@ -729,6 +729,10 @@ int tpm2_auto_startup(struct tpm_chip *chip) goto out; rc = tpm2_do_selftest(chip); + + if (rc == TPM2_RC_UPGRADE || rc == TPM2_RC_COMMAND_CODE) + return 0; + if (rc && rc != TPM2_RC_INITIALIZE) goto out; diff --git a/include/linux/tpm.h b/include/linux/tpm.h index aa11fe3..c5bf934 100644 --- a/include/linux/tpm.h +++ b/include/linux/tpm.h @@ -207,6 +207,7 @@ enum tpm2_return_codes { TPM2_RC_INITIALIZE = 0x0100, /* RC_VER1 */ TPM2_RC_FAILURE = 0x0101, TPM2_RC_DISABLED = 0x0120, + TPM2_RC_UPGRADE = 0x012D, TPM2_RC_COMMAND_CODE = 0x0143, TPM2_RC_TESTING = 0x090A, /* RC_WARN */ TPM2_RC_REFERENCE_H0 = 0x0910, -- 2.7.4
Powered by blists - more mailing lists