[kernel/f16] Delay after aborting command in tpm_tis (rhbz #746097)
Dave Jones
davej at fedoraproject.org
Tue Dec 20 23:22:08 UTC 2011
commit e091c2ac6ef1f6c450d5bd3527026cb24c5bd0e5
Author: Dave Jones <davej at redhat.com>
Date: Tue Dec 20 18:22:00 2011 -0500
Delay after aborting command in tpm_tis (rhbz #746097)
kernel.spec | 9 +++++++++
tpm_tis-delay-after-aborting-cmd.patch | 17 +++++++++++++++++
2 files changed, 26 insertions(+), 0 deletions(-)
---
diff --git a/kernel.spec b/kernel.spec
index 5c2ffac..2aa57e4 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -812,6 +812,9 @@ Patch21047: iwlwifi-allow-to-switch-to-HT40-if-not-associated.patch
#rhbz 741117
Patch21048: b44-Use-dev_kfree_skb_irq-in-b44_tx.patch
+#rhbz 746097
+Patch21049: tpm_tis-delay-after-aborting-cmd.patch
+
%endif
BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
@@ -1496,6 +1499,9 @@ ApplyPatch iwlwifi-allow-to-switch-to-HT40-if-not-associated.patch
#rhbz 741117
ApplyPatch b44-Use-dev_kfree_skb_irq-in-b44_tx.patch
+#rhbz 746097
+ApplyPatch tpm_tis-delay-after-aborting-cmd.patch
+
# END OF PATCH APPLICATIONS
%endif
@@ -2227,6 +2233,9 @@ fi
# and build.
%changelog
+* Tue Dec 20 2011 Dave Jones <davej at redhat.com>
+- Delay after aborting command in tpm_tis (rhbz #746097)
+
* Tue Dec 20 2011 Josh Boyer <jwboyer at redhat.com>
- Backport upstream fix for b44_poll oops (rhbz #741117)
- Include crtsaves.o for ppc64 as well (rhbz #769415)
diff --git a/tpm_tis-delay-after-aborting-cmd.patch b/tpm_tis-delay-after-aborting-cmd.patch
new file mode 100644
index 0000000..315284f
--- /dev/null
+++ b/tpm_tis-delay-after-aborting-cmd.patch
@@ -0,0 +1,17 @@
+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 at linux.vnet.ibm.com>
+
+--- linux-3.1.noarch/drivers/char/tpm/tpm_tis.c~ 2011-12-20 18:08:01.654464487 -0500
++++ linux-3.1.noarch/drivers/char/tpm/tpm_tis.c 2011-12-20 18:08:23.476380364 -0500
+@@ -432,6 +432,9 @@ static int probe_itpm(struct tpm_chip *c
+ 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;
More information about the scm-commits
mailing list