AIC7xxx.c oops

Paul Wouters (paul@xtdnet.nl)
Wed, 7 Jan 1998 18:17:53 +0100 (MET)


Hi,

I have been trying to get a Intel Intellect server to work with the onboard
scsi controller and have failed so far. Since you seem to be the maintainer
for this part, i'll try you and cc: it to linux-kernel.

The machine is a Intel Intellect (latest bios), with a "Turbochip" from
Kingston. (This is a AMD 5x86 chip that fits in a 5V socket, works like a charm when using root on NFS)

The relevant scsi messages at boot (2.0.33) are:

aic7xxx: <Adaptec AIC-7770 SCSI host adapter> at EISA 9
aic7xxx: BIOS enabled, IO Port 0x9c00, IRQ 11 (level sensitive), Revision >=E
aic7xxx: Extended translation disabled.
aic7xxx: Twin Channel, A SCSI ID 7, B SCSI ID 6, 4/4 SCB's, QFull 4, QMask 0x7
aic7xxx: Resetting channel A
aic7xxx: Downloading sequencer code... 378 instructions downloaded
scsi0 : Adaptec AHA274x/284x/294x (EISA/VLB/PCI-Fast SCSI) 4.1.1/3.2.1
scsi : 1 host
scsi0: Scanning channel A for devices.
(scsi0:0:0:0) Synchronous at 10.0Mhz, offset 15.
Vendor: HP Model: C3323-300 Rev: 4242
Type: Direct-Access ANSI SCSI revision: 02
Detected scsi disk sda at scsi0, channel 0, id 0, lun 0
scsi0: Scannel channel B for devices.
scsi : detected 1 SCSI disk total.
SCSI device sda: hdwr sectore= 512 bytes. Sectors= 2056008 [1003 MB] [1.0 GB]
hp100: eth0: HPJ2577 at 0x1c38, IRQ 5, EISA bus, 128k SRAM (rx/tx 75%).
hp100: eth0: Memory area at 0xd0000-0xf0000.
hp100: eth0: Adapter is attached to 100Mb/s Voice Grade AnyLAN network.
scsi0: BRKADRINT error(0x1):
Illegal Host Access
(scsi0:0:-1:-1) Channel reset
(scsi0:-1:-1:-1) yikes!! There is a loop in the waiting for selection list!
(scsi0:-1:-1:-1) yikes!! There is a loop in the disconnected list!
(scsi0:-1:-1:-1) yikes!! There is a loop in the free list!
Unable to handle kernel NULL pointer dereference at virtual address c0000008
current->tss.cr3 = 00101000, %cr3 = 00101000
*pde = 00102067
*pte = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<0018b0fe>]
EFLAGS: 00010212
eax: 00000e7e ebx: 00098c0c ecx:00000000 edx: 00005018
esi: 00006860 edi: 00006860 ebp: 0000001 esp: 0009bdcc
ds: 0018 es: 0018 fs: 002b gs: 0018 ss: 0018
Process swapper (pid: 1, process nr: 1, stackpage=0009b000)
Stack: 00098c0c 00000000 00006860 00000001 001c1b78 0000000f 00000000 0018b3bc
00006860 00098c0c 00000000 00006860 00009c00 00000001 0018c882 00006860
00000001 00000004 001bffb8 00006860 0009be98 00006860 0009be41 0018fc31
Call Trace: [<0018b3bc>] [<0018c882>] [<0018fc31>] [<00171e01>] [<00171e9d>] [<0010ca6d>] [<0010c39f>] [<0017e753>] [<00170010>] [<00117101>] [<0017e69f>] [<0017e26e>] [<00138b16>] [<001660da>] [<0012db28>] [<0010a705>] [<0011ef10>] [<00110018>] [<0019001

8>] [<00109489>] [<001092af>] [<001092b6>] [<00109438>]

Code: 0f b6 51 08 0f b6 41 0a c1 e0 03 89 d7 09 c7 8b 4c 24 24 f6
Aiee, killing ubterrupt handler

Running ksymoops on it:

Trace: 18b3bc <aic7xxx_run_done_queue+68/d8>
Trace: 18c882 <aic7xxx_reset_channel+362/370>
Trace: 18fc31 <aic7xxx_isr+391/594>
Trace: 171e01 <scrolldelta+c5/d0>
Trace: 171e9d <set_origin+59/60>
Trace: 10ca6d <do_IRQ+2d/50>
Trace: 10c39f <IRQ11_interrupt+5f/90>
Trace: 17e753 <hp100_probe1+3f/910>
Trace: 170010 <n_tty_receive_buf+144/b24>
Trace: 117101 <request_region+69/80>
Trace: 17e69f <hp100_probe+26f/2e4>
Trace: 17e26e <ethif_probe+22/34>
Trace: 138b16 <net_dev_init+5a/a8>
Trace: 1660da <device_setup+16/3c>
Trace: 12db28 <sys_setup+18/44>
Trace: 10a705 <system_call+55/80>
Trace: 11ef10 <kswapd>
Trace: 110018 <setup_arch+1e0/224>
Trace: 190018 <read_284x_seeprom+f4/2e0>
Trace: 109489 <init+51/268>
Trace: 1092af <start_kernel+193/1b4>
Trace: 1092b6 <start_kernel+19a/1b4>
Trace: 109489 <init+51/268>

Code: 18b0fe <aic7xxx_done+16/26c>
Code: 18b0fe <aic7xxx_done+16/26c> 0f b6 51 08 movzbl 0x8(%ecx),%edx
Code: 18b102 <aic7xxx_done+1a/26c> 0f b6 41 0a movzbl 0xa(%ecx),%eax
Code: 18b106 <aic7xxx_done+1e/26c> c1 e0 03 shll $0x3,%eax
Code: 18b10f <aic7xxx_done+27/26c> 89 d7 movl %edx,%edi
Code: 18b111 <aic7xxx_done+29/26c> 09 c7 orl %eax,%edi
Code: 18b113 <aic7xxx_done+2b/26c> 8b 4c 24 24 movl 0x24(%esp,1),%ecx
Code: 18b117 <aic7xxx_done+2f/26c> f6 00 90 testb $0x90,(%eax)
Code: 18b120 <aic7xxx_done+38/26c> 90 nop
Code: 18b121 <aic7xxx_done+39/26c> 90 nop

I get similar results for 2.1.78 and pre-2.0 kernels, so either my system is
pretty broken, or this bug has been in there for quite some time. (Or both :)

Paul