Re: Kernel panics with 1.2.10

Paul Gortmaker (gpg109@rsphy1.anu.edu.au)
Wed, 5 Jul 1995 16:24:02 +1000 (EST)


>I've been having tons of system crashes all of a sudden. The system
>always seems to die at 17f238 which is _ei_interrupt. This is with Kernel
>1.2.10.

>0017e948 T _ei_open
>0017eb18 t _ei_start_xmit
>0017f068 T _ei_interrupt <--- Crash!

>Jun 30 12:52:27 hq kernel: eth0: unknown interrupt 0x0
>Jun 30 12:52:39 hq kernel: invalid operand: 0000
>Jun 30 12:52:40 hq kernel: eth0: transmit timed out, TX status 0x3, ISR 0x3.
>Jun 30 12:52:40 hq kernel: eth0: Possible IRQ conflict on IRQ15?

Crash offset is 0x1d0 (0x17f068-0x17f238 == 464 decimal) from start
of ei_interrupt (note that my absolute addresses will be different):

0x172d3a <ei_interrupt+462>: nop
0x172d3b <ei_interrupt+463>: nop
0x172d3c <ei_interrupt+464>: testl $0xffffffbf,%ebx
0x172d42 <ei_interrupt+470>: je 0x172d9a <ei_interrupt+558>
0x172d44 <ei_interrupt+472>: cmpl $0x0,0x18d544

(gdb) l *0x172d3c
0x172d3c is in ei_interrupt (8390.c:325).
324
325 if ((interrupts & ~ENISR_RDC) && ei_debug) {
326 outb_p(E8390_NODMA+E8390_PAGE0+E8390_START, e8390_base + E8390_CMD);
327

Note that the masking of the ENISR_RDC bit (0x40) is no longer necessary,
and I removed it from 1.3.x kernels. I suggest you grab an 8390.c from
a 1.3.5 kernel if you want to run a 1.2.11 kernel. (Not 1.3.6 as it is
incompatible due to skb changes.) Looking at the above assembly and the
printk messages seems to indicate that you are getting bogus interrupts on
irq 15 (the garbage heap of PIC #2)

>eth0: WD80x3 at 0x280, 00 80 48 85 E1 CC assigning address 0xd0000 WD8003-old, IRQ 15, shared memory at 0xd0000-0xd1fff.
>wd.c:v1.10 9/23/94 Donald Becker (becker@cesdis.gsfc.nasa.gov)

Didn't this come up before? The probe report is showing that you have one
of the old 8 bit EEPROMless full length 8k RAM cards. But if that was the
case, you couldn't be using irq 15 on an 8 bit card! Not to mention the
fact that all wd/SMC cards have 00 00 C0 as the vendor prefix. Is this
some sort of wd-clone card? My list of vendor prefixes doesn't list any
valid 00 80 48 NIC hardware address prefixes.

Followups to the net-channel only please.

Paul.