On Wed, Nov 2, 2022 at 3:28 PM Jan Dąbroś <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. > > If tpm_try_get_ops() returns 0 it means that we have a lock. And if we > don't have a lock, then we are not executing any TPM commands. Are you > referring to tpm_mutex or something different? Ah, yup, I was reading this backwards, thinking that something had gone wrong when entering this block. Nevermind. -- Tim Van Patten | ChromeOS | timvp@xxxxxxxxxx | (720) 432-0997