• Stefan Berger's avatar
    tpm_tis: Delay ACPI S3 suspend while the TPM is busy · 20b87bbf
    Stefan Berger authored
    This patch delays the (ACPI S3) suspend while the TPM is busy processing a
    command and the TPM TIS driver is run in interrupt mode. This is the same
    behavior as we already have it for the TPM TIS driver in polling mode.
    
    Reasoning: Some of the TPM's commands advance the internal state of the TPM.
    An example would be the extending of one of its PCR registers. Upper layers,
    such as IMA or TSS (TrouSerS), would certainly want to be sure that the
    command succeeded rather than getting an error code (-62 = -ETIME) that may
    not give a conclusive answer as for what reason the command failed. Reissuing
    such a command would put the TPM into the wrong state, so waiting for it to
    finish is really the only option.
    
    The downside is that some commands (key creation) can take a long time and
    actually prevent the machine from entering S3 at all before the 20 second
    timeout of the power management subsystem arrives.
    Signed-off-by: default avatarStefan Berger <stefanb@linux.vnet.ibm.com>
    Signed-off-by: default avatarRajiv Andrade <srajiv@linux.vnet.ibm.com>
    20b87bbf
tpm_tis.c 20.8 KB