From 1ec76030edb631a1d37d6c9ad9d3791795681c11 Mon Sep 17 00:00:00 2001 From: Vadim Bendebury Date: Tue, 5 Jul 2016 22:30:16 -0700 Subject: [PATCH] tpm2: fix tpm_write() error reporting The code misses the cases when a response was received but the command failed. This patch fixes the problem. BRANCH=none BUG=chrome-os-partner:50645 TEST=none Change-Id: I3d50a4b67e3592bb80d2524a7c7f264fddbd34ae Signed-off-by: Martin Roth Original-Commit-Id: 8f4d6185e13beead7156027e1cb40f7944e46569 Original-Change-Id: I914ab6509d3ab2082152652205802201a6637fcc Original-Signed-off-by: Vadim Bendebury Original-Reviewed-on: https://chromium-review.googlesource.com/358096 Original-Reviewed-by: Aaron Durbin Reviewed-on: https://review.coreboot.org/15637 Tested-by: build bot (Jenkins) Reviewed-by: Philipp Deppenwiese --- src/lib/tpm2_tlcl.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/lib/tpm2_tlcl.c b/src/lib/tpm2_tlcl.c index ec20ca9446..312fe36414 100644 --- a/src/lib/tpm2_tlcl.c +++ b/src/lib/tpm2_tlcl.c @@ -246,12 +246,12 @@ uint32_t tlcl_write(uint32_t index, const void *data, uint32_t length) response = tpm_process_command(TPM2_NV_Write, &nv_writec); - /* Need to map tpm error codes into internal values. */ - if (!response) - return TPM_E_WRITE_FAILURE; + printk(BIOS_INFO, "%s: response is %x\n", + __func__, response ? response->hdr.tpm_code : -1); - printk(BIOS_INFO, "%s:%d return code %x\n", __func__, __LINE__, - response->hdr.tpm_code); + /* Need to map tpm error codes into internal values. */ + if (!response || response->hdr.tpm_code) + return TPM_E_WRITE_FAILURE; return TPM_SUCCESS; }