lkml.org 
[lkml]   [1998]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH] [ATTN LINUS :-] Re: Hard lockup 2.1.122
Frank van de Pol wrote:
>
> I experience (reproducable) hard lockups on my NFS server running linux
> 2.1.122.
>
> During write to the NFS server from a Window95 machine the linux box crashes
> after a few 100 kB have been written. The Linux machine locks hard, no
> network traffic possible, console freezes, but interrupt are still working
> (the magic sysreq didn't die...).

> Using `/boot/System.map.2.1.122' to map addresses to symbols.
>
> >>EIP: c01a0913 <pci_read_config_byte+f/24>
> Trace: c019812f <aic7xxx_pci_intr+1b/150>
> Trace: c01982d9 <aic7xxx_isr+75/5a8>
> Trace: c0198869 <do_aic7xxx_isr+5d/2e8>
> Trace: c0108b9f <do_8259A_IRQ+73/9c>
> Trace: c0108c46 <do_IRQ+22/3c>
> Trace: c0107b20 <ret_from_intr>
> Trace: c01068d2 <__switch_to+6e/d0>
> Trace: c010f007 <schedule+22f/264>
> Trace: c0106279 <sys_idle+65/ac>
> Trace: c01062b0 <sys_idle+9c/ac>
> Trace: c0107a64 <system_call+34/40>
> Trace: c0106084 <init>
> Trace: c0106073 <cpu_idle+7/18>
> Trace: c0106000 <get_options>
> Trace: c0100177 <L6>
> Code: c01a0913 <pci_read_config_byte+f/24> movzbl 0x14(%edx),%eax
> Code: c01a0917 <pci_read_config_byte+13/24> pushl %eax
> Code: c01a0918 <pci_read_config_byte+14/24> movl (%edx),%eax
> Code: c01a091a <pci_read_config_byte+16/24> movzbl 0x1c(%eax),%eax
> Code: c01a091e <pci_read_config_byte+1a/24> pushl %eax
> Code: c01a091f <pci_read_config_byte+1b/24> call fff6b6f5 <_EIP+fff6b6f5>
> Code: c01a0924 <pci_read_config_byte+20/24> addl $0x10,%esp
> Code: c01a0927 <pci_read_config_byte+23/24>

I found why this was happening. Attached is a very small patch that should
fix the problem. Linus, please apply this to your 2.1.122 tree.

--- linux/drivers/scsi/aic7xxx.c.old Wed Aug 26 02:58:55 1998
+++ linux/drivers/scsi/aic7xxx.c Sun Sep 20 15:18:53 1998
@@ -6791,6 +6791,7 @@
p->type = temp->type;
p->unpause = temp->unpause;
p->pause = temp->pause;
+ p->pdev = temp->pdev;
p->pci_bus = temp->pci_bus;
p->pci_device_fn = temp->pci_device_fn;
p->bios_address = temp->bios_address;

--

Doug Ledford <dledford@dialnet.net>
Opinions expressed are my own, but
they should be everybody's.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:44    [W:0.051 / U:0.296 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site