[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#620278: tpm_tis failure increases boot time a llllooootttt



Hi Hendrik,

Hendrik Sattler wrote:

> The boot process (until login on vt1 is possible) take >6 minutes with the
> Debian kernel while the self-compiled (although almost everything that's
> needed is compiled-in) kernel takes far less than 1 minute (never measured
> this).
>
> If you more information than below, just tell me.
[...]
> [  129.448119] tpm_tis 00:0b: tpm_transmit: tpm_send: error -62

Thanks and sorry for the slow response.  Might be related to
<http://bugs.debian.org/649033>.

Could you try this patch?  (Instructions for applying a patch to the
Debian kernel are at [1].)
[1] http://kernel-handbook.alioth.debian.org/ch-common-tasks.html#s4.2.2

commit a927b8131794
Author: Stefan Berger <stefanb@linux.vnet.ibm.com>
Date:   Fri Nov 11 12:57:06 2011 -0500

    tpm_tis: add delay after aborting command
    
    This patch adds a delay after aborting a command. Some TPMs need
    this and will not process the subsequent command correctly otherwise.
    
    Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>

diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
index 34832bc74649..d93bafde3120 100644
--- a/drivers/char/tpm/tpm_tis.c
+++ b/drivers/char/tpm/tpm_tis.c
@@ -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;



Reply to: