| Index: firmware/lib/rollback_index.c
|
| diff --git a/firmware/lib/rollback_index.c b/firmware/lib/rollback_index.c
|
| index 931e819edab6fcfae2e5a5a3c8369306150b8930..51174559e219a0789db358d0ff0dc88fbe82faf1 100644
|
| --- a/firmware/lib/rollback_index.c
|
| +++ b/firmware/lib/rollback_index.c
|
| @@ -315,8 +315,18 @@ uint32_t RollbackKernelLock(void) {
|
| #else
|
|
|
| uint32_t RollbackS3Resume(void) {
|
| + uint32_t result;
|
| TlclLibInit();
|
| - RETURN_ON_FAILURE(TlclResume());
|
| + /* Check for INVALID_POSTINIT error, so we don't have to worry if this ends
|
| + * up in hardware that keeps the TPM powered on during S3.
|
| + */
|
| + result = TlclResume();
|
| + if (result == TPM_E_INVALID_POSTINIT) {
|
| + return TPM_SUCCESS;
|
| + }
|
| + if (result != TPM_SUCCESS) {
|
| + return result;
|
| + }
|
| #ifdef USE_CONTINUE_SELF_TEST
|
| /* TODO: ContinueSelfTest() should be faster than SelfTestFull, but
|
| * may also not work properly in older TPM firmware. For now, do
|
|
|