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