On Mon, Oct 31, 2022 at 8:04 PM Jan Dabros <jsd@xxxxxxxxxxxx> wrote: > > - if (!tpm_chip_start(chip)) { > + rc = tpm_try_get_ops(chip); > + if (!rc) { > if (chip->flags & TPM_CHIP_FLAG_TPM2) > tpm2_shutdown(chip, TPM2_SU_STATE); > else > rc = tpm1_pm_suspend(chip, tpm_suspend_pcr); This if-else block is still interacting with the TPM even though you're not guaranteed to have the lock, which could lead to racy/inchorent results. Would it be better to just bail out entirely since we can't safely attempt any recovery at this point. If it's still worth attempting the shutdown command, it would at least be good to add a comment admitting that we have no choice but to communicate with the TPM without a lock. -- Tim Van Patten | ChromeOS | timvp@xxxxxxxxxx | (720) 432-0997