]> git.hungrycats.org Git - linux/commitdiff
tpm_tis: add delay after aborting command
authorStefan Berger <stefanb@linux.vnet.ibm.com>
Fri, 11 Nov 2011 17:57:06 +0000 (12:57 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 Feb 2012 17:21:35 +0000 (09:21 -0800)
commit a927b8131794ee449b7f6666e7ab61301949b20f upstream.

This patch adds a delay after aborting a command. Some TPMs need
this and will not process the subsequent command correctly otherwise.

It's worth noting that a TPM randomly failing to process a command,
maps to randomly failing suspend/resume operations.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Signed-off-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/char/tpm/tpm_tis.c

index 3f4051a7c5a770440d8d0b32893c1885fa796480..c7e5282fb885e0363cdedd7834ea712a803bd1f6 100644 (file)
@@ -432,6 +432,9 @@ static int probe_itpm(struct tpm_chip *chip)
 out:
        itpm = rem_itpm;
        tpm_tis_ready(chip);
+       /* some TPMs need a break here otherwise they will not work
+        * correctly on the immediately subsequent command */
+       msleep(chip->vendor.timeout_b);
        release_locality(chip, chip->vendor.locality, 0);
 
        return rc;