summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKylene Jo Hall <kjhall@us.ibm.com>2006-07-13 12:24:36 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2006-08-23 14:13:31 -0700
commitf60aad27513c78d0c0e5feaeb1013f8ce6c07a7c (patch)
treea6d1ad9695ead27c5de23b5e646135858f60000d
parent5a4ceb2adfc3f7d35fa07420582f626c8402e605 (diff)
downloadlwn-f60aad27513c78d0c0e5feaeb1013f8ce6c07a7c.tar.gz
lwn-f60aad27513c78d0c0e5feaeb1013f8ce6c07a7c.zip
tpm: interrupt clear fix
Under stress testing I found that the interrupt is not always cleared. This is a bug and this patch should go into 2.6.18 and 2.6.17.x. Signed-off-by: Kylene Hall <kjhall@us.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/char/tpm/tpm_tis.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
index 8ea70625f7ea..2678034be339 100644
--- a/drivers/char/tpm/tpm_tis.c
+++ b/drivers/char/tpm/tpm_tis.c
@@ -424,6 +424,7 @@ static irqreturn_t tis_int_handler(int irq, void *dev_id, struct pt_regs *regs)
iowrite32(interrupt,
chip->vendor.iobase +
TPM_INT_STATUS(chip->vendor.locality));
+ ioread32(chip->vendor.iobase + TPM_INT_STATUS(chip->vendor.locality));
return IRQ_HANDLED;
}