summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVadim Bendebury <vbendeb@chromium.org>2016-07-06 08:55:12 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2016-07-08 00:35:02 +0000
commit19d9958090c0415833dee244981cb0ed1f27a978 (patch)
tree086909c7ba02eb7a3172ec00268e5e03bfe5cff9
parentc9eb061401fc5c8f3ed43fa3d0594cbeddc7cc95 (diff)
downloadvboot-factory-gru-8557.B.tar.gz
tpm2: refactor tpm2 return value processingfactory-gru-8557.B
There is no point in checking and reporting error code in each function calling tpm_process_command(), let's do it in one place for all commands. BRANCH=none BUG=chrome-os-partner:50645 TEST=Kevin still boots to chrome os Change-Id: I10f45bd15df293f63401c295c5dce833543c50da Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/358174 Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Darren Krahn <dkrahn@chromium.org> (cherry picked from commit 452973e5f45014162c273e13ad973d38f58404b0) Reviewed-on: https://chromium-review.googlesource.com/358932 Reviewed-by: Bernie Thompson <bhthompson@chromium.org> Commit-Queue: Bernie Thompson <bhthompson@chromium.org> Tested-by: Bernie Thompson <bhthompson@chromium.org>
-rw-r--r--firmware/lib/tpm2_lite/tlcl.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/firmware/lib/tpm2_lite/tlcl.c b/firmware/lib/tpm2_lite/tlcl.c
index 8baa304f..efd73928 100644
--- a/firmware/lib/tpm2_lite/tlcl.c
+++ b/firmware/lib/tpm2_lite/tlcl.c
@@ -11,11 +11,13 @@
#include "tpm2_marshaling.h"
#include "utility.h"
-static void *tpm_process_command(TPM_CC command, void *command_body)
+static struct tpm2_response *tpm_process_command(TPM_CC command,
+ void *command_body)
{
/* Command/response buffer. */
static uint8_t cr_buffer[TPM_BUFFER_SIZE];
uint32_t out_size, in_size;
+ struct tpm2_response *response;
out_size = tpm_marshal_command(command, command_body,
cr_buffer, sizeof(cr_buffer));
@@ -28,11 +30,16 @@ static void *tpm_process_command(TPM_CC command, void *command_body)
in_size = sizeof(cr_buffer);
if (VbExTpmSendReceive(cr_buffer, out_size,
cr_buffer, &in_size) != TPM_SUCCESS) {
- VBDEBUG(("tpm transaction failed\n"));
+ VBDEBUG(("tpm transaction failed for %#x\n", command));
return NULL;
}
- return tpm_unmarshal_response(command, cr_buffer, in_size);
+ response = tpm_unmarshal_response(command, cr_buffer, in_size);
+
+ VBDEBUG(("%s: command %#x, return code %#x\n", __func__, command,
+ response ? response->hdr.tpm_code : -1));
+
+ return response;
}
/**
@@ -136,8 +143,6 @@ uint32_t TlclRead(uint32_t index, void* data, uint32_t length)
if (!response)
return TPM_E_READ_FAILURE;
- VBDEBUG(("%s:%d index %#x return code %x\n",
- __FILE__, __LINE__, index, response->hdr.tpm_code));
switch (response->hdr.tpm_code) {
case 0:
break;
@@ -177,8 +182,5 @@ uint32_t TlclWrite(uint32_t index, const void *data, uint32_t length)
if (!response)
return TPM_E_WRITE_FAILURE;
- VBDEBUG(("%s:%d return code %x\n", __func__, __LINE__,
- response->hdr.tpm_code));
-
return TPM_SUCCESS;
}