OLD | NEW |
1 /* Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 /* Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
2 * Use of this source code is governed by a BSD-style license that can be | 2 * Use of this source code is governed by a BSD-style license that can be |
3 * found in the LICENSE file. | 3 * found in the LICENSE file. |
4 * | 4 * |
5 * Functions for querying, manipulating and locking rollback indices | 5 * Functions for querying, manipulating and locking rollback indices |
6 * stored in the TPM NVRAM. | 6 * stored in the TPM NVRAM. |
7 */ | 7 */ |
8 | 8 |
9 #include "rollback_index.h" | 9 #include "rollback_index.h" |
10 | 10 |
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
308 return TPM_SUCCESS; | 308 return TPM_SUCCESS; |
309 } | 309 } |
310 | 310 |
311 uint32_t RollbackKernelLock(void) { | 311 uint32_t RollbackKernelLock(void) { |
312 return TPM_SUCCESS; | 312 return TPM_SUCCESS; |
313 } | 313 } |
314 | 314 |
315 #else | 315 #else |
316 | 316 |
317 uint32_t RollbackS3Resume(void) { | 317 uint32_t RollbackS3Resume(void) { |
| 318 uint32_t result; |
318 TlclLibInit(); | 319 TlclLibInit(); |
319 RETURN_ON_FAILURE(TlclResume()); | 320 /* Check for INVALID_POSTINIT error, so we don't have to worry if this ends |
| 321 * up in hardware that keeps the TPM powered on during S3. |
| 322 */ |
| 323 result = TlclResume(); |
| 324 if (result == TPM_E_INVALID_POSTINIT) { |
| 325 return TPM_SUCCESS; |
| 326 } |
| 327 if (result != TPM_SUCCESS) { |
| 328 return result; |
| 329 } |
320 #ifdef USE_CONTINUE_SELF_TEST | 330 #ifdef USE_CONTINUE_SELF_TEST |
321 /* TODO: ContinueSelfTest() should be faster than SelfTestFull, but | 331 /* TODO: ContinueSelfTest() should be faster than SelfTestFull, but |
322 * may also not work properly in older TPM firmware. For now, do | 332 * may also not work properly in older TPM firmware. For now, do |
323 * the full self test. */ | 333 * the full self test. */ |
324 RETURN_ON_FAILURE(TlclContinueSelfTest()); | 334 RETURN_ON_FAILURE(TlclContinueSelfTest()); |
325 #else | 335 #else |
326 RETURN_ON_FAILURE(TlclSelfTestFull()); | 336 RETURN_ON_FAILURE(TlclSelfTestFull()); |
327 #endif | 337 #endif |
328 return TPM_SUCCESS; | 338 return TPM_SUCCESS; |
329 } | 339 } |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
416 | 426 |
417 uint32_t RollbackKernelLock(void) { | 427 uint32_t RollbackKernelLock(void) { |
418 if (g_rollback_recovery_mode) { | 428 if (g_rollback_recovery_mode) { |
419 return TPM_SUCCESS; | 429 return TPM_SUCCESS; |
420 } else { | 430 } else { |
421 return TlclLockPhysicalPresence(); | 431 return TlclLockPhysicalPresence(); |
422 } | 432 } |
423 } | 433 } |
424 | 434 |
425 #endif // DISABLE_ROLLBACK_TPM | 435 #endif // DISABLE_ROLLBACK_TPM |
OLD | NEW |