Skip to contentSkip to conversation

OOPS in 2.4.0-pre9 -- NULL pointer dereference in pci_insert_device and pci_match_device

DISCUSSION Miles Lane 1 participant 1 message Feb 8, 2001

lore
Share & tools
lore

Miles Lane

author
#0 lore raw
Quoted 10 lines · Andrew Morton
Quoted 4 lines · Miles Lane

This highly reproducible OOPS gets triggered when I insert my Belkin BusPort Mobile after booting the machine with no other PC Cards inserted.

I really can't work that trace out. Are you sure it's correct? System.map kosher, etc?

Hi Andrew,

I am adding Linus to the TO:, since this problem may be in his yenta code.

I'm really not sure what why the OOPS I sent was bogus. Perhaps these new OOPS traces will be more useful. I hope so!

I collected these using a kernel built from Alan's 2.4.1-ac5 tree.

OOPS resulting from inserting my Belkin BusPort Mobile:

Feb  7 13:47:45 agate kernel: Kernel command line: 
BOOT_IMAGE=Serial-Debug ro root05 pci=biosirq console=ttyS0,38400 
console=tty0 setup_delay
Feb  7 13:49:47 agate kernel: Unable to handle kernel NULL pointer 
dereference at virtual address 00000014
Feb  7 13:49:47 agate kernel: c01c75b3
Feb  7 13:49:47 agate kernel: *pde = 00000000
Feb  7 13:49:47 agate kernel: Oops: 0000
Feb  7 13:49:47 agate kernel: CPU:    0
Feb  7 13:49:47 agate kernel: EIP:    0010:[<c01c75b3>]
Using defaults from ksymoops -t elf32-i386 -a i386
Feb  7 13:49:47 agate kernel: EFLAGS: 00010203
Feb  7 13:49:47 agate kernel: eax: 00000000   ebx: 00000000   ecx: 
c027f50c   edx: 00000000
Feb  7 13:49:47 agate kernel: esi: c2cbbc00   edi: c11bfc8b   ebp: 
c11c6e20   esp: c11bfc48
Feb  7 13:49:48 agate kernel: ds: 0018   es: 0018   ss: 0018
Feb  7 13:49:48 agate kernel: Process keventd (pid: 2, stackpage�1bf000)
Feb  7 13:49:48 agate kernel: Stack: c2cbbc00 00000007 c01d0bba c2cbbc00 
c11c6e20 0000001e c1184800 c11bff2c
Feb  7 13:49:48 agate kernel:        c11be560 00000000 00000000 c2cbbd24 
c2cbbc26 c11bfc8b 0000000b c2cbbc00
Feb  7 13:49:48 agate kernel:        01000100 00000000 10b75157 00000000 
00000000 00000000 00000000 c11c6e20
Feb  7 13:49:48 agate kernel: Call Trace: [<c01d0bba>] [<c01ce105>] 
[<c01ce070>] [<c01ce008>] [<c01ce298>] [<c01d2066>] [<c0118f9c>]
Feb  7 13:49:48 agate kernel:        [<c011f6c7>] [<c0105000>] 
[<c0105000>] [<c010744f>]
Feb  7 13:49:48 agate kernel: Code: 83 7b 14 00 74 0e 56 53 e8 8c fd ff 

ff 83 c4 08 85 c0 75 0a

Quoted 1 line
Quoted 1 line

EIP; c01c75b3 <pci_insert_device+4b/78> <==Trace; c01d0bba <cb_alloc+216/250>

Trace; c01ce105 <unreset_socket+8d/fc>
Trace; c01ce070 <reset_socket+44/4c>
Trace; c01ce008 <setup_socket+a8/cc>
Trace; c01ce298 <parse_events+7c/d8>
Trace; c01d2066 <yenta_bh+1e/2c>
Trace; c0118f9c <__run_task_queue+50/64>
Trace; c011f6c7 <context_thread+12b/1ac>
Trace; c0105000 <empty_bad_page+0/1000>
Trace; c0105000 <empty_bad_page+0/1000>
Trace; c010744f <kernel_thread+23/30>
Code; c01c75b3 <pci_insert_device+4b/78>
00000000 <_EIP>:
Code; c01c75b3 <pci_insert_device+4b/78> <== 0: 83 7b 14 00 cmpl $0x0,0x14(%ebx) <==Code; c01c75b7 <pci_insert_device+4f/78>

    4:   74 0e                     je     14 <_EIP+0x14> c01c75c7 

<pci_insert_device+5f/78>
Code; c01c75b9 <pci_insert_device+51/78>
6: 56 push %esi
Code; c01c75ba <pci_insert_device+52/78>
7: 53 push %ebx
Code; c01c75bb <pci_insert_device+53/78>

    8:   e8 8c fd ff ff            call   fffffd99 <_EIP+0xfffffd99> 
c01c734c <pci_announce_device+0/50>
Code;  c01c75c0 <pci_insert_device+58/78>
    d:   83 c4 08                  add    $0x8,%esp

Code; c01c75c3 <pci_insert_device+5b/78>
10: 85 c0 test %eax,%eax
Code; c01c75c5 <pci_insert_device+5d/78>
12: 75 0a jne 1e <_EIP+0x1e> c01c75d1
<pci_insert_device+69/78>

OOPS resulting from inserting my 3c575:

Unable to handle kernel paging request at virtual address 20202025
c01c72f1
*pde = 00000000
Oops: 0000
CPU:    0
EIP:    0010:[<c01c72f1>]

Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010202
eax: 20202025 ebx: c1890400 ecx: 20202025 edx: 00000000
esi: c1890400 edi: c5a3f8a0 ebp: 00000000 esp: c11bfc1c
ds: 0018 es: 0018 ss: 0018
Process keventd (pid: 2, stackpage�1bf000)

Stack: c5a3f8a0 c01c7378 20202025 c1890400 c5a3f8a0 c1890400 c11bfc8b 
c11c6e20
        c01c75d0 c5a3f8a0 c1890400 c1890400 00000007 c01d0bca c1890400 
c11c6e20
        0000001e c1184800 c11bff2c c11be560 00000000 00000000 c1890524 
c1890426
Call Trace: [<c5a3f8a0>] [<c01c7378>] [<c5a3f8a0>] [<c01c75d0>] 
[<c5a3f8a0>] [<c01d0bca>] [<c01ce115>]
        [<c01ce080>] [<c01ce018>] [<c01ce2a8>] [<c01d2076>] [<c0118f9c>] 
[<c011f6d7>] [<c0105000>] [<c0105000>]
        [<c010744f>]
Code: 8b 11 eb 53 83 fa ff 74 08 0f b7 43 24 39 c2 75 3f 8b 51 04
Quoted 1 line
Quoted 1 line

EIP; c01c72f1 <pci_match_device+9/74> <==Trace; c5a3f8a0 <.bss.end+66bd/????>

Trace; c01c7378 <pci_announce_device+1c/50>
Trace; c5a3f8a0 <.bss.end+66bd/????>
Trace; c01c75d0 <pci_insert_device+58/78>
Trace; c5a3f8a0 <.bss.end+66bd/????>
Trace; c01d0bca <cb_alloc+216/250>
Trace; c01ce115 <unreset_socket+8d/fc>
Trace; c01ce080 <reset_socket+44/4c>
Trace; c01ce018 <setup_socket+a8/cc>
Trace; c01ce2a8 <parse_events+7c/d8>
Trace; c01d2076 <yenta_bh+1e/2c>
Trace; c0118f9c <__run_task_queue+50/64>
Trace; c011f6d7 <context_thread+12b/1ac>
Trace; c0105000 <empty_bad_page+0/1000>
Trace; c0105000 <empty_bad_page+0/1000>
Trace; c010744f <kernel_thread+23/30>
Code; c01c72f1 <pci_match_device+9/74>
00000000 <_EIP>:
Code; c01c72f1 <pci_match_device+9/74> <== 0: 8b 11 mov (%ecx),%edx <==Code; c01c72f3 <pci_match_device+b/74>

    2:   eb 53                     jmp    57 <_EIP+0x57> c01c7348 
<pci_match_device+60/74>
Code;  c01c72f5 <pci_match_device+d/74>
    4:   83 fa ff                  cmp    $0xffffffff,%edx
Code;  c01c72f8 <pci_match_device+10/74>
    7:   74 08                     je     11 <_EIP+0x11> c01c7302 
<pci_match_device+1a/74>
Code;  c01c72fa <pci_match_device+12/74>
    9:   0f b7 43 24               movzwl 0x24(%ebx),%eax
Code;  c01c72fe <pci_match_device+16/74>
    d:   39 c2                     cmp    %eax,%edx
Code;  c01c7300 <pci_match_device+18/74>
    f:   75 3f                     jne    50 <_EIP+0x50> c01c7341 

<pci_match_device+59/74>
Code; c01c7302 <pci_match_device+1a/74>
11: 8b 51 04 mov 0x4(%ecx),%edx

_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
http://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel