[Skiboot] [PATCH 09/14] tpm_i2c_nuvoton: handle errors after writing sts.commandReady in step 5

Claudio Carvalho cclaudio at linux.vnet.ibm.com
Mon Nov 28 14:08:09 AEDT 2016


This adds code to handle errors after writting the sts.commandReady to
release the tpm.

Fixes: 56ad053c3e8bf0764ad5878cb018f00a389d30cf
Signed-off-by: Claudio Carvalho <cclaudio at linux.vnet.ibm.com>
---
 libstb/drivers/tpm_i2c_nuvoton.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/libstb/drivers/tpm_i2c_nuvoton.c b/libstb/drivers/tpm_i2c_nuvoton.c
index aba7211..1c1fd37 100644
--- a/libstb/drivers/tpm_i2c_nuvoton.c
+++ b/libstb/drivers/tpm_i2c_nuvoton.c
@@ -455,8 +455,18 @@ static int tpm_transmit(struct tpm_dev *dev, uint8_t* buf, size_t cmdlen,
 	if (rc < 0)
 		goto out;
 
-	DBG("step 5/5: write command ready\n");
+	DBG("step 5/5: release tpm\n");
 	rc = tpm_status_write_byte(TPM_STS_COMMAND_READY);
+	if (rc < 0) {
+		/**
+		 * @fwts-label TPMReleaseTpm
+		 * @fwts-advice Either the tpm device or the tpm-i2c interface
+		 * doesn't seem to be working properly. Check the return code
+		 * (rc) for further details.
+		 */
+		prlog(PR_ERR, "NUVOTON: fail to release tpm, rc=%d\n", rc);
+		rc = STB_DRIVER_ERROR;
+	}
 
 out:
 	DBG("**** tpm_transmit %s, rc=%d ****\n",
-- 
1.9.1



More information about the Skiboot mailing list