diff options
author | Claudio Carvalho <cclaudio@linux.vnet.ibm.com> | 2016-11-01 20:40:27 -0200 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2016-11-02 17:15:59 +1100 |
commit | 635537dba33dfb78f4383d9271d52def17b31a95 (patch) | |
tree | 1959d00f74fbcb689469df2e0ae70840d4602823 /libstb | |
parent | ddfc16d1275e7a2354913b3b3c2df6f0aa9f31ee (diff) | |
download | skiboot-635537dba33dfb78f4383d9271d52def17b31a95.zip skiboot-635537dba33dfb78f4383d9271d52def17b31a95.tar.gz skiboot-635537dba33dfb78f4383d9271d52def17b31a95.tar.bz2 |
tpm_extendl: don't measure when no tpm is registered
This fixes tpm_extendl() to measure only when the list of
registered tpms is not empty.
Fixes: 3837c6f0cf4cffb5de874413eed755c0c698b076
Signed-off-by: Claudio Carvalho <cclaudio@linux.vnet.ibm.com>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'libstb')
-rw-r--r-- | libstb/status_codes.h | 1 | ||||
-rw-r--r-- | libstb/tpm_chip.c | 10 |
2 files changed, 9 insertions, 2 deletions
diff --git a/libstb/status_codes.h b/libstb/status_codes.h index e67c17b..4896132 100644 --- a/libstb/status_codes.h +++ b/libstb/status_codes.h @@ -31,6 +31,7 @@ #define STB_MEASURE_FAILED -200 /* TPM */ +#define STB_NO_TPM_INITIALIZED 300 #define STB_TPM_OVERFLOW -300 #define STB_TPM_TIMEOUT -301 diff --git a/libstb/tpm_chip.c b/libstb/tpm_chip.c index d387ea0..6791f4c 100644 --- a/libstb/tpm_chip.c +++ b/libstb/tpm_chip.c @@ -187,12 +187,12 @@ void tpm_init(void) if (list_empty(&tpm_list)) /** - * @fwts-label TPMNotInitialized + * @fwts-label NoTPMRegistered * @fwts-advice No TPM chip has been initialized. We may not * have a compatible tpm driver or there is no tpm node in the * device tree with the expected bindings. */ - prlog(PR_ERR, "TPM: no tpm chip has been initialized\n"); + prlog(PR_ERR, "TPM: no tpm chip registered\n"); } @@ -233,6 +233,12 @@ int tpm_extendl(TPM_Pcr pcr, measured = 0; failed = 0; + if (list_empty(&tpm_list)) { + prlog(PR_NOTICE, "TPM: %s (pcr%d) not measured. No TPM " + "registered/enabled\n", event_msg, pcr); + return STB_NO_TPM_INITIALIZED; + } + list_for_each(&tpm_list, tpm, link) { if (!tpm->enabled) continue; |