2001-12-10 06:09:03

by Burton Windle

[permalink] [raw]
Subject: 2.4.17-pre7: Oops with Tulip

Unable to handle kernel NULL pointer dereference at virtual address
0000001b
c02b8b46
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<c02b8b46>] Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010296
eax: d3f5053c ebx: 00000000 ecx: 00000001 edx: d3f47940
esi: d3f7ff98 edi: 00000001 ebp: 00000008 esp: d3f7fe90
ds: 0018 es: 0018 ss: 0018
Process swapper (pid: 1, stackpage=d3f7f000)
Stack: 00000006 d3f7ff98 d3f47cc0 d3f47940 c02674b8 d3f7fec4 c0236ce2
d3f47800
d3f47940 c02b99f1 d3f47800 d3f47800 c02674b1 00000001 c02c4ba4
d3f75800
c02a54c0 00000000 c029891c d3f47874 d3f7ff18 00000000 00000001
00000000
Call Trace: [<c0236ce2>] [<c01e1421>] [<c01e1484>] [<c0105037>]
[<c010546c>]
Code: 80 7b 1b 00 0f 84 a7 03 00 00 8b 44 24 20 83 b8 58 02 00 00

>>EIP; c02b8b46 <tulip_parse_eeprom+176/530> <=====
Trace; c0236ce2 <sprintf+12/18>
Trace; c01e1420 <pci_announce_device+34/50>
Trace; c01e1484 <pci_register_driver+48/60>
Trace; c0105036 <init+6/110>
Trace; c010546c <kernel_thread+28/38>
Code; c02b8b46 <tulip_parse_eeprom+176/530>
00000000 <_EIP>:
Code; c02b8b46 <tulip_parse_eeprom+176/530> <=====
0: 80 7b 1b 00 cmpb $0x0,0x1b(%ebx) <=====
Code; c02b8b4a <tulip_parse_eeprom+17a/530>
4: 0f 84 a7 03 00 00 je 3b1 <_EIP+0x3b1> c02b8ef6
<tulip_parse_eeprom+526/530>
Code; c02b8b50 <tulip_parse_eeprom+180/530>
a: 8b 44 24 20 mov 0x20(%esp,1),%eax
Code; c02b8b54 <tulip_parse_eeprom+184/530>
e: 83 b8 58 02 00 00 00 cmpl $0x0,0x258(%eax)

<0>Kernel panic: Attempted to kill init!

Raw oops:
ne.c: ISAPnP reports Generic PNP at i/o 0x280, irq 10.
ne.c:v1.10 9/23/94 Donald Becker ([email protected])
Last modified Nov 1, 2000 by Paul Gortmaker
NE*000 ethercard probe at 0x280: 00 80 ad c9 e0 69
eth0: NE2000 found at 0x280, using IRQ 10.
Linux Tulip driver version 0.9.15-pre9 (Nov 6, 2001)
PCI: Found IRQ 9 for device 00:09.0
PCI: Setting latency timer of device 00:09.0 to 64
tulip0: EEPROM default media type Autosense.
tulip0: Index #0 - Media MII (#11) described by a 21140 MII PHY (1)
block.
tulip0: Index #1 - Media 10baseT (#0) described by a 21140 non-MII (0)
block.
tulip0: Index #2 - Media 100baseTx (#3) described by a 21140 non-MII (0)
block.
tulip0: Index #3 - Media 10baseT-FDX (#4) described by a 21140 non-MII
(0) block.
tulip0: Index #4 - Media 100baseTx-FDX (#5) described by a 21140 non-MII
(0) block.
tulip0: MII transceiver #1 config 3100 status 7809 advertising 05e1.
eth1: Davicom DM9102/DM9102A rev 32 at 0xb800, 00:E0:3F:04:58:60, IRQ 9.
PCI: Enabling device 00:0b.0 (0080 -> 0083)
PCI: Assigned IRQ 9 for device 00:0b.0
PCI: Setting latency timer of device 00:0b.0 to 64
tulip1: Controller 1 of multiport board.
Unable to handle kernel NULL pointer dereference at virtual address
0000001b
printing eip:
c02b8b46
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<c02b8b46>] Not tainted
EFLAGS: 00010296
eax: d3f5053c ebx: 00000000 ecx: 00000001 edx: d3f47940
esi: d3f7ff98 edi: 00000001 ebp: 00000008 esp: d3f7fe90
ds: 0018 es: 0018 ss: 0018
Process swapper (pid: 1, stackpage=d3f7f000)
Stack: 00000006 d3f7ff98 d3f47cc0 d3f47940 c02674b8 d3f7fec4 c0236ce2
d3f47800
d3f47940 c02b99f1 d3f47800 d3f47800 c02674b1 00000001 c02c4ba4
d3f75800
c02a54c0 00000000 c029891c d3f47874 d3f7ff18 00000000 00000001
00000000
Call Trace: [<c0236ce2>] [<c01e1421>] [<c01e1484>] [<c0105037>]
[<c010546c>]

Code: 80 7b 1b 00 0f 84 a7 03 00 00 8b 44 24 20 83 b8 58 02 00 00
<0>Kernel panic: Attempted to kill init!


morpheus:/home/bwindle# lspci
00:00.0 Host bridge: Acer Laboratories Inc. [ALi] M1541 (rev 04)
00:01.0 PCI bridge: Acer Laboratories Inc. [ALi] M5243 (rev 04)
00:02.0 USB Controller: Acer Laboratories Inc. [ALi] M5237 USB (rev 03)
00:03.0 Bridge: Acer Laboratories Inc. [ALi] M7101 PMU
00:07.0 ISA bridge: Acer Laboratories Inc. [ALi] M1533 PCI to ISA Bridge
[Aladdin IV] (rev c3)
00:09.0 Ethernet controller: Davicom Semiconductor, Inc. Ethernet 100/10
MBit (rev 20)
00:0a.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 06)
00:0b.0 Ethernet controller: Macronix, Inc. [MXIC] MX98713
00:0f.0 IDE interface: Acer Laboratories Inc. [ALi] M5229 IDE (rev c1)
01:00.0 VGA compatible controller: 3Dfx Interactive, Inc. Voodoo 3 (rev
01)

00:09.0 Ethernet controller: Davicom Semiconductor, Inc. Ethernet 100/10
MBit (rev 20)
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0 (5000ns min, 10000ns max)
Interrupt: pin A routed to IRQ 9
Region 0: I/O ports at b800 [size=128]
Region 1: Memory at dd000000 (32-bit, non-prefetchable) [size=128]
Expansion ROM at <unassigned> [disabled] [size=256K]
Capabilities: [50] Power Management version 1
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot+,D3cold+)
Status: D0 PME-Enable+ DSel=0 DScale=0 PME+

00:0b.0 Ethernet controller: Macronix, Inc. [MXIC] MX98713
Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping+ SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Interrupt: pin A routed to IRQ 0
Region 0: I/O ports at ff00 [disabled] [size=256]
Region 1: Memory at 14000000 (32-bit, non-prefetchable) [disabled]
[size=256]
Expansion ROM at e5eb0000 [disabled] [size=64K]


--
Burton Windle [email protected]
Linux: the "grim reaper of innocent orphaned children."
from /usr/src/linux-2.4.0/init/main.c:655




2001-12-10 13:27:43

by Stephan von Krawczynski

[permalink] [raw]
Subject: Re: 2.4.17-pre7: Oops with Tulip

On Mon, 10 Dec 2001 01:08:28 -0500 (EST)
Burton W <[email protected]> wrote:

Just to test a theory: please try attached patch.

Regards,
Stephan

--- eeprom.c-orig Mon Dec 10 14:24:35 2001
+++ eeprom.c Mon Dec 10 14:25:41 2001
@@ -130,9 +130,9 @@
}

controller_index = 0;
- if (ee_data[19] > 1) { /* Multiport board. */
- last_ee_data = ee_data;
- }
+
+ last_ee_data = ee_data;
+
subsequent_board:

if (ee_data[27] == 0) { /* No valid media table. */

2001-12-11 02:41:14

by Stephan von Krawczynski

[permalink] [raw]
Subject: Re: 2.4.17-pre7: Oops with Tulip

Hi Jeff,

this is a story regarding tulip-driver in a two separate cards-setup
where the driver thinks it is a multiple board setup, but the
eeprom-values do not back this theory. This seems the reason, why
last_ee_data turns out as NULL and its members get references later
on, which obviously breaks.
I fixed this with the patch on the very end of this, but am not 100%
sure if this is valid and does not break other setups.
Can you comment/verify/submit the bugfix-patch to marcelo and L for
inclusion?

Thanks,
Stephan



> It works! :)
>
> Here is 2.4.17-pre7 with your tulip patch when I modprobe the tulip
> driver:
>
> Linux Tulip driver version 0.9.15-pre9 (Nov 6, 2001)
> PCI: Found IRQ 9 for device 00:09.0
> PCI: Setting latency timer of device 00:09.0 to 64
> tulip0: EEPROM default media type Autosense.
> tulip0: Index #0 - Media MII (#11) described by a 21140 MII PHY (1)
> block.
> tulip0: Index #1 - Media 10baseT (#0) described by a 21140 non-MII
(0)
> block.
> tulip0: Index #2 - Media 100baseTx (#3) described by a 21140
non-MII (0)
> block.
> tulip0: Index #3 - Media 10baseT-FDX (#4) described by a 21140
non-MII
> (0) block.
> tulip0: Index #4 - Media 100baseTx-FDX (#5) described by a 21140
non-MII
> (0) block.
> tulip0: MII transceiver #1 config 3100 status 7809 advertising
05e1.
> eth1: Davicom DM9102/DM9102A rev 32 at 0xb800, 00:E0:3F:04:58:60,
IRQ 9.
> PCI: Enabling device 00:0b.0 (0080 -> 0083)
> PCI: Assigned IRQ 9 for device 00:0b.0
> PCI: Setting latency timer of device 00:0b.0 to 64
> tulip1: Controller 1 of multiport board.
> tulip1: EEPROM default media type Autosense.
> tulip1: Index #0 - Media MII (#11) described by a 21140 MII PHY (1)
> block.
> tulip1: Index #1 - Media 10baseT (#0) described by a <unknown>
(128)
> block.
> tulip1: Index #2 - Media 10baseT (#0) described by a 21140 non-MII
(0)
> block.
> tulip1: Index #3 - Media 10base2 (#1) described by a 21140 non-MII
(0)
> block.
> tulip1: Index #4 - Media 10baseT-FDX (#4) described by a 21140
non-MII
> (0) block.
> tulip1: Index #5 - Media 100baseTx-FDX (#5) described by a 21140
non-MII
> (0) block.
> tulip1: ***WARNING***: No MII transceiver found!
> eth2: Macronix 98713 PMAC rev 0 at 0xff00, EEPROM not present,
> 00:E0:3F:04:58:61, IRQ 9.
>
> In other words, it works :)
>
> If I swap the cards in their PCI slots now, modprobing tulip gives
this:
> Linux Tulip driver version 0.9.15-pre9 (Nov 6, 2001)
> PCI: Found IRQ 9 for device 00:09.0
> PCI: Setting latency timer of device 00:09.0 to 64
> tulip0: EEPROM default media type 100baseTx.
> tulip0: Index #0 - Media 10baseT (#0) described by a 21140 non-MII
(0)
> block.
> tulip0: Index #1 - Media 100baseTx (#3) described by a 21140
non-MII (0)
> block.
> tulip0: Index #2 - Media 10baseT-FDX (#4) described by a 21140
non-MII
> (0) block.
> tulip0: Index #3 - Media 100baseTx-FDX (#5) described by a 21140
non-MII
> (0) block.
> eth1: Macronix 98713 PMAC rev 0 at 0xb800, 00:40:33:9A:B3:20, IRQ 9.
> PCI: Found IRQ 9 for device 00:0b.0
> PCI: Setting latency timer of device 00:0b.0 to 64
> tulip1: EEPROM default media type Autosense.
> tulip1: Index #0 - Media MII (#11) described by a 21140 MII PHY (1)
> block.
> tulip1: Index #1 - Media 10baseT (#0) described by a 21140 non-MII
(0)
> block.
> tulip1: Index #2 - Media 100baseTx (#3) described by a 21140
non-MII (0)
> block.
> tulip1: Index #3 - Media 10baseT-FDX (#4) described by a 21140
non-MII
> (0) block.
> tulip1: Index #4 - Media 100baseTx-FDX (#5) described by a 21140
non-MII
> (0) block.
> tulip1: MII transceiver #1 config 3100 status 7809 advertising
05e1.
> eth2: Davicom DM9102/DM9102A rev 32 at 0xb000, 00:E0:3F:04:58:60,
IRQ 9.
>
> Can we get this to go into 2.4.17-rc1?
>
> --
> Burton Windle [email protected]
> Linux: the "grim reaper of innocent orphaned children."
> from /usr/src/linux-2.4.0/init/main.c:655
>
>
> On Mon, 10 Dec 2001, Stephan von Krawczynski wrote:
>
> > On Mon, 10 Dec 2001 01:08:28 -0500 (EST)
> > Burton W <[email protected]> wrote:
> >
> > Just to test a theory: please try attached patch.
> >
> > Regards,
> > Stephan
> >
> > --- eeprom.c-orig Mon Dec 10 14:24:35 2001
> > +++ eeprom.c Mon Dec 10 14:25:41 2001
> > @@ -130,9 +130,9 @@
> > }
> >
> > controller_index = 0;
> > - if (ee_data[19] > 1) { /* Multiport board. */
> > - last_ee_data = ee_data;
> > - }
> > +
> > + last_ee_data = ee_data;
> > +
> > subsequent_board:
> >
> > if (ee_data[27] == 0) { /* No valid media table.
*/
> > -
> > To unsubscribe from this list: send the line "unsubscribe
linux-kernel" in
> > the body of a message to [email protected]
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at http://www.tux.org/lkml/
> >
> >
>
>
>
>