> > On Fri, Aug 30, 2019 at 10:54:59PM +0900, Seunghun Han wrote: > > > When I tested this patch in my machine, it seemed that ACPI NVS was > > saved after TPM CRB driver sent "TPM2_Shutdown(STATE)" to the fTPM > > while suspending. Then, ACPI NVS was restored while resuming. > > After resuming, PCRs didn't change and TPM2 tools such as > > tpm2_pcrlist, tpm2_extend, tpm2_getrandoms worked well. > > So, according to my test result, it seems that the patch doesn't > > create bugs and race during resume. > > I have a feeling that is shear luck of link time ordering and not guarenteed?? > > Jason No, it is guaranteed. As you know, suspend_nvs_save() is called by acpi_pm_pre_suspend(), and it is called by platform_suspend_prepare_noirq(). platform_suspend_prepare_noirq() is also called by suspend_enter(), and it already suspends all devices like TPM CRB driver before calling platform_suspend_prepare_noirq(). This means that the order is guaranteed and we don't need to worry about it. Seunghun