From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeff Garzik Subject: Re: [PATCH #upstream-fixes] libata: clear link->eh_info.serror from ata_std_postreset() Date: Fri, 07 Dec 2007 18:53:29 -0500 Message-ID: <4759DCF9.10407@garzik.org> References: <4759DB17.9010505@gmail.com> <4759DB75.1010702@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from srv5.dvmed.net ([207.36.208.214]:55433 "EHLO mail.dvmed.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751021AbXLGXxm (ORCPT ); Fri, 7 Dec 2007 18:53:42 -0500 In-Reply-To: <4759DB75.1010702@gmail.com> Sender: linux-ide-owner@vger.kernel.org List-Id: linux-ide@vger.kernel.org To: Tejun Heo Cc: IDE/ATA development list , mark.paulus@technologist.com, sveint@gmail.com, bug-track@fisher-privat.net Tejun Heo wrote: > link->eh_info.serror is used to cache SError for controllers which > need it cleared from interrupt handler to clear IRQ. It also should > be cleared after reset just like SError itself. > > Make ata_std_postreset() clear link->eh_info.serror too and update > sata_sil such that it doesn't care about bookkeeping the value. > > Signed-off-by: Tejun Heo > --- > drivers/ata/libata-core.c | 1 + > drivers/ata/sata_sil.c | 11 +---------- > 2 files changed, 2 insertions(+), 10 deletions(-) > > Index: work/drivers/ata/libata-core.c > =================================================================== > --- work.orig/drivers/ata/libata-core.c > +++ work/drivers/ata/libata-core.c > @@ -3923,6 +3923,7 @@ void ata_std_postreset(struct ata_link * > /* clear SError */ > if (sata_scr_read(link, SCR_ERROR, &serror) == 0) > sata_scr_write(link, SCR_ERROR, serror); > + link->eh_info.serror = 0; IMO it would make more sense to record the state of the hardware following sata_scr_write() than simply zeroing the cache value. Just a gut feeling... it seems like having a manufactured value (zero) rather than the last known from-the-hardware value could lead to inconsistencies. Comments? Jeff