public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] 2.[46] Fix double reset in aic7xxx driver
@ 2004-07-12 19:20 Joe Korty
  2004-07-12 23:35 ` J.A. Magallon
  0 siblings, 1 reply; 2+ messages in thread
From: Joe Korty @ 2004-07-12 19:20 UTC (permalink / raw)
  To: akpm, marcelo.tosatti; +Cc: linux-scsi, linux-kernel

Fix occasional PCI bus parity errors on the Dell PowerEdge 4600 during
boot.

Symptoms: The LCD display would turn orange and display "PCI SYSTEM
E13F5", and the following message would appear in /var/log/dmesg:
"Uhhuh. NMI received. Dazed and confused, but trying to continue".

By inserting a PCI card with a PDC20268 IDE controller and attaching to
that a Sony DRU-510A DVD RW burner with an unloaded tray, the failure
can be made to happen on every boot.

Cause: The aic7xxx driver was resetting the onboard AIC7891 SCSI controller
while waiting for a previous reset to complete.  This second reset confuses
the controller causing it to put bad data onto the PCI bus.

This is a backport of a RedHat 2.4.21-15.ELsmp fix.  A letter discussing
this problem, or one very close to it, may be found at:

   http://lists.us.dell.com/pipermail/linux-poweredge/2003-May/025010.html

Against 2.6.7 and 2.4.26.

Regards,
Joe


diff -ura base/drivers/scsi/aic7xxx/aic79xx_pci.c new/drivers/scsi/aic7xxx/aic79xx_pci.c
--- base/drivers/scsi/aic7xxx/aic79xx_pci.c	2004-06-16 01:19:22.000000000 -0400
+++ new/drivers/scsi/aic7xxx/aic79xx_pci.c	2004-07-12 12:50:11.000000000 -0400
@@ -452,8 +452,10 @@
 	 * or read prefetching could be initiated by the
 	 * CPU or host bridge.  Our device does not support
 	 * either, so look for data corruption and/or flaged
-	 * PCI errors.
+	 * PCI errors.  First pause without causing another
+	 * chip reset.
 	 */
+	hcntrl &= ~CHIPRST;
 	ahd_outb(ahd, HCNTRL, hcntrl|PAUSE);
 	while (ahd_is_paused(ahd) == 0)
 		;
diff -ura base/drivers/scsi/aic7xxx/aic7xxx_pci.c new/drivers/scsi/aic7xxx/aic7xxx_pci.c
--- base/drivers/scsi/aic7xxx/aic7xxx_pci.c	2004-06-16 01:18:57.000000000 -0400
+++ new/drivers/scsi/aic7xxx/aic7xxx_pci.c	2004-07-12 12:50:11.000000000 -0400
@@ -1284,8 +1284,10 @@
 	 * or read prefetching could be initiated by the
 	 * CPU or host bridge.  Our device does not support
 	 * either, so look for data corruption and/or flagged
-	 * PCI errors.
+	 * PCI errors.  First pause without causing another
+	 * chip reset.
 	 */
+	hcntrl &= ~CHIPRST;
 	ahc_outb(ahc, HCNTRL, hcntrl|PAUSE);
 	while (ahc_is_paused(ahc) == 0)
 		;


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] 2.[46] Fix double reset in aic7xxx driver
  2004-07-12 19:20 [PATCH] 2.[46] Fix double reset in aic7xxx driver Joe Korty
@ 2004-07-12 23:35 ` J.A. Magallon
  0 siblings, 0 replies; 2+ messages in thread
From: J.A. Magallon @ 2004-07-12 23:35 UTC (permalink / raw)
  To: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1434 bytes --]


On 2004.07.12, Joe Korty wrote:
> Fix occasional PCI bus parity errors on the Dell PowerEdge 4600 during
> boot.
> 
> Symptoms: The LCD display would turn orange and display "PCI SYSTEM
> E13F5", and the following message would appear in /var/log/dmesg:
> "Uhhuh. NMI received. Dazed and confused, but trying to continue".
> 
> By inserting a PCI card with a PDC20268 IDE controller and attaching to
> that a Sony DRU-510A DVD RW burner with an unloaded tray, the failure
> can be made to happen on every boot.
> 
> Cause: The aic7xxx driver was resetting the onboard AIC7891 SCSI controller
> while waiting for a previous reset to complete.  This second reset confuses
> the controller causing it to put bad data onto the PCI bus.
> 
> This is a backport of a RedHat 2.4.21-15.ELsmp fix.  A letter discussing
> this problem, or one very close to it, may be found at:
> 
>    http://lists.us.dell.com/pipermail/linux-poweredge/2003-May/025010.html
> 
> Against 2.6.7 and 2.4.26.
> 

This fixes are included in current driver in Justin Gibbs' site.

Will this driver ever be updated on mainline or is it a religious issue ?


--
J.A. Magallon <jamagallon()able!es>     \               Software is like sex:
werewolf!able!es                         \         It's better when it's free
Mandrakelinux release 10.1 (Cooker) for i586
Linux 2.6.7-jam12 (gcc 3.4.1 (Mandrakelinux (Cooker) 3.4.1-1mdk)) #1

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2004-07-12 23:35 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-07-12 19:20 [PATCH] 2.[46] Fix double reset in aic7xxx driver Joe Korty
2004-07-12 23:35 ` J.A. Magallon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox