Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Revert "TPM: Long default timeout fix"

This reverts commit c4ff4b829ef9e6353c0b133b7adb564a68054979.

Ted Ts'o reports:

"TPM is working for me so I can log into employer's network in 2.6.37.
It broke when I tried 2.6.38-rc6, with the following relevant lines
from my dmesg:

[ 11.081627] tpm_tis 00:0b: 1.2 TPM (device-id 0x0, rev-id 78)
[ 25.734114] tpm_tis 00:0b: Operation Timed out
[ 78.040949] tpm_tis 00:0b: Operation Timed out

This caused me to get suspicious, especially since the _other_ TPM
commit in 2.6.38 had already been reverted, so I tried reverting
commit c4ff4b829e: "TPM: Long default timeout fix". With this commit
reverted, my TPM on my Lenovo T410 is once again working."

Requested-and-tested-by: Theodore Ts'o <tytso@mit.edu>
Acked-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

+4 -6
+4 -6
drivers/char/tpm/tpm.c
··· 364 364 tpm_protected_ordinal_duration[ordinal & 365 365 TPM_PROTECTED_ORDINAL_MASK]; 366 366 367 - if (duration_idx != TPM_UNDEFINED) { 367 + if (duration_idx != TPM_UNDEFINED) 368 368 duration = chip->vendor.duration[duration_idx]; 369 - /* if duration is 0, it's because chip->vendor.duration wasn't */ 370 - /* filled yet, so we set the lowest timeout just to give enough */ 371 - /* time for tpm_get_timeouts() to succeed */ 372 - return (duration <= 0 ? HZ : duration); 373 - } else 369 + if (duration <= 0) 374 370 return 2 * 60 * HZ; 371 + else 372 + return duration; 375 373 } 376 374 EXPORT_SYMBOL_GPL(tpm_calc_ordinal_duration); 377 375