oops: 2.2.15pre10 + eepro100
Craig S. Bell
csb@pacifier.com
Mon Feb 28 12:51:57 2000
Greetings, all. I have a Compaq Proliant 3000 (two-way PIII 500MHz)
with one NC3120 (Speedo3) NIC. Kernels up to 2.2.14 run perfectly. Kernel
2.2.15pre10 (also pre7) oops'es when I manipulate the eepro100 driver.
I am suspicious about the PCI resources -- when using the 2.2.15pre
kernels, the base I/O address for the NIC looks all wrong. ifconfig picks
up on this, and reports a bogus I/O address -- perhaps a resource conflict?
First, here's the output from ksymoops. This happens each time that
I unload the eepro100 module, and then attempt to cat /proc/ioports. If I
reload the module, snooping around /proc does not result in an oops.
-----------------------
Unable to handle kernel paging request at virtual address e08a22b4
current->tss.cr3 = 1ef10000, %cr3 =1ef10000
*pde = 1ffe8063
Oops: 0000
CPU: 1
EIP: 0010:[vsprintf+445/876]
EFLAGS: 00010297
eax: e08a22b4 ebx: ffffffff ecx: e08a22b4 edx: fffffffe Feb 25
esi: de5fd0eb edi: def4df3c ebp:00000000 esp: def4deec
ds: 0018 es: 0018 ss: 0018
Process cat (pid: 917, process nr: 12, stackpage=def4d000)
Stack: de5fd000 00000c00 ffffffff c0144b6a 00000202 df860800 def4c000 c018f0ae
73861130 0000000a c0186fe0 de5fd0d7 c018f0b0 def4df3c c011ad84 de5fd0d7
c018f0a1 e08a4000 e08a401f e08a22b4 00000000 def4df98 c01b0be0 c0147886
Call Trace:
[proc_root_lookup+90/304] [tvecs+2574/13280] [sprintf+20/3616]
[tvecs+2576/13280] [get_ioport_list+56/100] [tvecs+2561/13280]
[<e08a4000>] [<e08a401f>] [<e08a22b4>] [get_root_array+274/340]
[array_read+230/484] [do_page_fault+290/912]
[sys_read+194/232][system_call+52/56]
Code: 80 38 00 74 07 40 4a 83 fa ff 75 f4 29 c8 89 44 24 10 f7 c5
Using defaults from ksymoops -t elf32-i386 -a i386
Trace; e08a401f <cleanup_module+794b/????>
Trace; e08a22b4 <cleanup_module+5be0/????>
Code; 00000000 Before first symbol
00000000 <_EIP>:
Code; 00000000 Before first symbol
0: 80 38 00 cmpb $0x0,(%eax)
Code; 00000003 Before first symbol
3: 74 07 je c <_EIP+0xc> 0000000c Before first symbol
Code; 00000005 Before first symbol
5: 40 incl %eax
Code; 00000006 Before first symbol
6: 4a decl %edx
Code; 00000007 Before first symbol
7: 83 fa ff cmpl $0xffffffff,%edx
Code; 0000000a Before first symbol
a: 75 f4 jne 0 <_EIP>
Code; 0000000c Before first symbol
c: 29 c8 subl %ecx,%eax
Code; 0000000e Before first symbol
e: 89 44 24 10 movl %eax,0x10(%esp,1)
Code; 00000012 Before first symbol
12: f7 c5 00 00 00 00 testl $0x0,%ebp
-----------------------
Here's what my /proc/ioports looks like with the eepro100 module.
With other (non-pre) kernels, the NIC shows up correctly at 0x4800:
-----------------------
0000-001f : dma1
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0080-008f : dma page reg
00a0-00bf : pic2
00c0-00df : dma2
00f0-00ff : fpu
02f8-02ff : serial(auto)
03c0-03df : vga+
03f8-03ff : serial(auto)
e08a4000-e08a401f : Intel Speedo3 Ethernet
-----------------------
Here's what ifconfig makes of all of this. Note the base address.
There's a SCSI host at 0x4000; could this be part of the problem?
-----------------------
eth0 Link encap:Ethernet HWaddr 00:50:8B:61:35:DD
inet addr:x.y.z.t Bcast:x.y.z.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:5 Base address:0x4000
-----------------------
Here are relevant entries in /proc/pci:
-----------------------
PCI devices found:
<snip>
Bus 2, device 4, function 0:
SCSI storage controller: NCR 53c875 (rev 20).
Medium devsel. IRQ 10. Master Capable. Latency=255. Min Gnt=17.Max Lat=64.
I/O at 0x4000 [0x4001].
Non-prefetchable 32 bit memory at 0xc6ffff00 [0xc6ffff00].
Non-prefetchable 32 bit memory at 0xc6ffe000 [0xc6ffe000].
<snip>
Bus 2, device 8, function 0:
Ethernet controller: Intel 82557 (rev 5).
Medium devsel. Fast back-to-back capable. IRQ 5. Master Capable. Latency=64. Min Gnt=8.Max Lat=56.
Prefetchable 32 bit memory at 0xc6dff000 [0xc6dff008].
I/O at 0x4800 [0x4801].
Non-prefetchable 32 bit memory at 0xc6e00000 [0xc6e00000].
-----------------------
Finally, here's my kernel message buffer leading up to the oops:
-----------------------
F 1 1 0 1 0 1 1 D1
1c 0FF 0F 1 1 0 1 0 1 1 D9
1d 0FF 0F 1 1 0 1 0 1 1 E1
1e 0FF 0F 1 1 0 1 0 1 1 E9
1f 0FF 0F 1 1 0 1 0 1 1 F1
20 000 00 1 0 0 0 0 0 0 00
21 000 00 1 0 0 0 0 0 0 00
22 000 00 1 0 0 0 0 0 0 00
IRQ to pin mappings:
IRQ0 -> 2
IRQ1 -> 1
IRQ3 -> 3
IRQ4 -> 4
IRQ6 -> 6
IRQ7 -> 7
IRQ8 -> 8
IRQ12 -> 12
IRQ13 -> 13
IRQ14 -> 14
IRQ15 -> 15
IRQ21 -> 21
IRQ22 -> 22
IRQ23 -> 23
IRQ24 -> 24
IRQ25 -> 25
IRQ26 -> 26
IRQ27 -> 27
IRQ28 -> 28
IRQ29 -> 29
IRQ30 -> 30
IRQ31 -> 31
.................................... done.
checking TSC synchronization across CPUs: passed.
mtrr: your CPUs had inconsistent fixed MTRR settings
mtrr: probably your BIOS does not setup all CPUs
PCI: PCI BIOS revision 2.10 entry at 0xf0080
PCI: Using configuration type 1
PCI: Probing PCI hardware
PCI: Discovered primary peer bus 02
PCI: using PPB(B0,I6,P0) to get irq 31
PCI->APIC IRQ transform: (B1,I0,P0) -> 31
PCI: Device 00:00 not found by BIOS
PCI: Device 00:01 not found by BIOS
PCI: Device 00:78 not found by BIOS
PCI: Device 00:88 not found by BIOS
PCI: Device 00:89 not found by BIOS
Linux NET4.0 for Linux 2.2
Based upon Swansea University Computer Society NET3.039
NET4: Unix domain sockets 1.0 for Linux NET4.0.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
TCP: Hash tables configured (ehash 524288 bhash 65536)
Starting kswapd v 1.5
Detected PS/2 Mouse Port.
pty: 256 Unix98 ptys configured
cpqarray: Device e11 has been found at 1 0
Compaq SMART2 Driver (v 1.0.6)
Found 1 controller(s)
cpqarray: Finding drives on ida0 (Smart Array 3200)
cpqarray ida/c0d0: blksz=512 nr_blks=106692000
Partition check:
ida/c0d0: ida/c0d0p1 ida/c0d0p3 ida/c0d0p4 < ida/c0d0p5 ida/c0d0p6
ida/c0d0p7 ida/c0d0p8 ida/c0d0p9 >
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 44k freed
Adding Swap: 1052616k swap-space (priority -1)
ISO 9660 Extensions: Microsoft Joliet Level 1
ISO 9660 Extensions: RRIP_1991A
Serial driver version 4.27 with no serial options enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
eepro100.c: Debug level is 3.
eepro100.c:v1.09j-t 9/29/99 Donald Becker
http://cesdis.gsfc.nasa.gov/linux/driv
ers/eepro100.html
eepro100.c: $Revision: 1.18 $ 1999/12/29 Modified by Andrey V. Savochkin <saw@msu.ru>
Found Intel i82557 PCI Speedo at I/O 0xe08a4000, IRQ 5.
PCI latency timer (CFLT) is 0x40.
eth0: OEM i82557/i82558 10/100 Ethernet at 0xe08a4000, 00:50:8B:61:35:DD, IRQ 5.
Board assembly 692290-005, Physical connectors present: RJ45
Primary interface chip i82555 PHY #1.
Forcing 100Mbs full-duplex operation.
General self-test: passed.
Serial sub-system self-test: passed.
Internal registers self-test: passed.
ROM checksum self-test: passed (0x24c9f043).
Receiver lock-up workaround activated.
eth0: speedo_open() irq 5.
eth0: Done speedo_open(), status 00000090.
eth0: Link status change.
cat uses obsolete /proc/pci interface
eth0: Shutting down ethercard, status was 0090.
eth0: 0 multicast blocks dropped.
Unable to handle kernel paging request at virtual address e08a22b4
<see oops-trace above>
-----------------------
Pleae let me know if you would like to see my kernel .config file,
or any other information. Thank you in advance for your assistance.
-cheers,
Craig S. Bell
-------------------------------------------------------------------
To unsubscribe send a message body containing "unsubscribe"
to linux-eepro100-request@beowulf.org