From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751109AbWGQSgA (ORCPT ); Mon, 17 Jul 2006 14:36:00 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751119AbWGQSgA (ORCPT ); Mon, 17 Jul 2006 14:36:00 -0400 Received: from e34.co.us.ibm.com ([32.97.110.152]:29314 "EHLO e34.co.us.ibm.com") by vger.kernel.org with ESMTP id S1751109AbWGQSf7 (ORCPT ); Mon, 17 Jul 2006 14:35:59 -0400 Subject: [Fwd: Re: [PATCH] tpm: interrupt clear fix] From: Kylene Jo Hall To: stable@kernel.org Cc: Greg KH , torvalds@osdl.org, akpm@osdl.org, "Theodore Ts'o" , Zwane Mwaikambo , Justin Forbes , linux-kernel , Chris Wedgwood , Randy Dunlap , Dave Jones , Chuck Wolber , stable@kernel.org, alan@lxorguk.ukuu.org.uk, greg@kroah.com Content-Type: text/plain Date: Mon, 17 Jul 2006 11:35:20 -0700 Message-Id: <1153161320.4808.11.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.0.4 (2.0.4-7) Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org -------- Forwarded Message -------- From: Kylene Jo Hall To: linux-os (Dick Johnson) Cc: linux-kernel , TPM Device Driver List , akpm@osdl.org 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. On Thu, 2006-07-13 at 07:45 -0400, linux-os (Dick Johnson) wrote: > PCI devices need a final read to flush all pending writes. Whatever > mb() does, just hides the problem. Signed-off-by: Kylene Hall --- --- linux-2.6.18-rc1/drivers/char/tpm/tpm_tis.c 2006-07-13 14:46:39.727500500 -0500 +++ linux-2.6.18-rc1-tpm/drivers/char/tpm/tpm_tis.c 2006-07-13 14:47:33.878884750 -0500 @@ -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; }