Skip to contentSkip to conversation

tpm: interrupt clear fix]

PATCH In review Kylene Jo Hall 2 participants 3 messages Jul 17, 2006 TPM device driver

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 tpm: interrupt clear fix]

-------- Forwarded Message --------
From: Kylene Jo Hall <[email protected]>
To: linux-os (Dick Johnson) <[email protected]>
Cc: linux-kernel <[email protected]>, TPM Device Driver List <[email protected]>, [email protected]
Subject: Re: [PATCH] tpm: interrupt clear fix
Date: Thu, 13 Jul 2006 12:24:36 -0700
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.

Quoted 2 lines · linux-os (Dick Johnson)

PCI devices need a final read to flush all pending writes. Whatever mb() does, just hides the problem.

---

drivers/char/tpm/tpm_tis.c +1 -0
@@ -424,6 +424,7 @@ static irqreturn_t tis_int_handler(int i
 	iowrite32(interrupt,
 		  chip->vendor.iobase +
 		  TPM_INT_STATUS(chip->vendor.locality));
+	ioread32(chip->vendor.iobase + TPM_INT_STATUS(chip->vendor.locality));
 	return IRQ_HANDLED;
 }
 
#1 lore raw
Quoted 22 lines · Kylene Jo Hall

-------- Forwarded Message --------
From: Kylene Jo Hall <[email protected]>
To: linux-os (Dick Johnson) <[email protected]>
Cc: linux-kernel <[email protected]>, TPM Device Driver List <[email protected]>, [email protected]
Subject: Re: [PATCH] tpm: interrupt clear fix
Date: Thu, 13 Jul 2006 12:24:36 -0700
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.

Quoted 2 lines · linux-os (Dick Johnson)

PCI devices need a final read to flush all pending writes. Whatever mb() does, just hides the problem.

---

drivers/char/tpm/tpm_tis.c static irqreturn_t tis_int_handler(int i · line 429

Quoted 6 lines
drivers/char/tpm/tpm_tis.c +1 -0
@@ -424,6 +424,7 @@ static irqreturn_t tis_int_handler(int i
 	iowrite32(interrupt,
 		  chip->vendor.iobase +
 		  TPM_INT_STATUS(chip->vendor.locality));
+	ioread32(chip->vendor.iobase + TPM_INT_STATUS(chip->vendor.locality));
 	return IRQ_HANDLED;
 }

So does this replace the other tpm patch? Or should we apply both of them?

thanks,

greg k-h

#2 lore raw

This replaces the previous patch.
Thanks,
Kylie

Quoted 36 lines · Greg KH
Quoted 22 lines · Kylene Jo Hall

-------- Forwarded Message --------
From: Kylene Jo Hall <[email protected]>
To: linux-os (Dick Johnson) <[email protected]>
Cc: linux-kernel <[email protected]>, TPM Device Driver List <[email protected]>, [email protected]
Subject: Re: [PATCH] tpm: interrupt clear fix
Date: Thu, 13 Jul 2006 12:24:36 -0700
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.

Quoted 2 lines · linux-os (Dick Johnson)

PCI devices need a final read to flush all pending writes. Whatever mb() does, just hides the problem.

---

drivers/char/tpm/tpm_tis.c static irqreturn_t tis_int_handler(int i · line 429

Quoted 6 lines
drivers/char/tpm/tpm_tis.c +1 -0
@@ -424,6 +424,7 @@ static irqreturn_t tis_int_handler(int i
 	iowrite32(interrupt,
 		  chip->vendor.iobase +
 		  TPM_INT_STATUS(chip->vendor.locality));
+	ioread32(chip->vendor.iobase + TPM_INT_STATUS(chip->vendor.locality));
 	return IRQ_HANDLED;
 }

So does this replace the other tpm patch? Or should we apply both of them?

thanks,

greg k-h