PROBLEM: Oops when unloading usb-uhci module

From: Thierry BLIND (thierry.blind@caramail.com)
Date: Mon Sep 09 2002 - 10:36:13 EST


Hello, this is my first kernel bug report, but since many
kernel releases ( at least >= 2.4.17 ) I fall on same the
bug, so I've decided to report this now :-)
 
Please, could I be personally CC'ed the answers/comments
posted to the list in response to my posting. Thanx :-)

[1.] One line summary of the problem:

Oops when unloading usb-uhci module

[2.] Full description of the problem/report:

Actually, I'm using an ECI USB ADSL modem (a Globescan
based-model) to connect to internet,
that requires to run (usermode) programs (see X. section) to
be recognized by the kernel (because there is no kernel
support yet).

The only thing is, when I lose synchro or ppp connection, I
have to restart my modem by unloading and reloading usb-uhci
first, and run the usermode programs then again.

And that's where it "oops" (while unloading usb-uhci):-(

NB: After the first oops, when I try "insmod usb-uhci", it
oops again. But at this point, it's probably normal :-)
 
[3.] Keywords:

modules, usb, kernel

[4.] Kernel version (from /proc/version):

2.4.19-8mdk (gcc version 3.2 (Mandrake Linux 9.0 3.2-1mdk))

[5.] Output of Oops.. message (if applicable) with symbolic
information resolved (see Documentation/oops-tracing.txt)

ksymoops 2.4.5 on i686 2.4.19-8mdk. Options used
 -V (default)
 -k /proc/ksyms (default)
 -l /proc/modules (default)
 -o /lib/modules/2.4.19-8mdk/ (default)
 -m /boot/System.map-2.4.19-8mdk (default)

*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<c01b72bd>] Tainted: P
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010002
eax: 00000000 ebx: 1268e200 ecx: 00000000 edx: 1268e200
esi: 00000202 edi: 1268e200 ebp: d277de94 esp: d277de70
ds: 0018 es: 0018 ss: 0018
Process pppoeci (pid: 2482, stackpage=d277d000)
Stack: d2634420 00000000 c01b72f4 00000000 1268e200 d7e14b60
d2634420 d7e14b60
 d7e14b60 d277dea8 dabce88a 00000000 d268e200 1268e200
d277dec0 dabcf645
 d7e14b60 d268e200 00000246 d48cee1c d277dee0 dabcfab4
d7e14b60 d2634420
Call Trace: [<c01b72f4>] [<dabce88a>] [<dabcf645>]
[<dabcfab4>] [<dabcfcc6>]
 [<dabbf26f>] [<dabc3600>] [<dabc3a7a>] [<c013adf2>]
[<c01397c8>] [<c011e447>]
 [<c011ea25>] [<c011ebe1>] [<c0108fe3>]
Code: 8b 01 39 c8 74 14 8b 50 0c 39 d3 72 07 03 51 18 39 d3
72 08
<6>usb.c: USB bus 2 deregistered
kmem_cache_destroy: Can't free all objects c142ea08
usb-uhci.c: urb_priv_kmem remained

>>EIP; c01b72bd <pool_find_page+d/30> <=====

>>ebx; 1268e200 Before first symbol
>>edx; 1268e200 Before first symbol
>>edi; 1268e200 Before first symbol
>>ebp; d277de94 <_end+1248647c/1a520648>
>>esp; d277de70 <_end+12486458/1a520648>

Trace; c01b72f4 <pci_pool_free+14/e0>
Trace; dabce88a <[usbcore].bss.end+260b/8de1>
Trace; dabcf645 <[usbcore].bss.end+33c6/8de1>
Trace; dabcfab4 <[usbcore].bss.end+3835/8de1>
Trace; dabcfcc6 <[usbcore].bss.end+3a47/8de1>
Trace; dabbf26f <[usbcore]usb_unlink_urb+2f/40>
Trace; dabc3600 <[usbcore]destroy_all_async+70/80>
Trace; dabc3a7a <[usbcore]usbdev_release+4a/70>
Trace; c013adf2 <fput+e2/100>
Trace; c01397c8 <filp_close+38/60>
Trace; c011e447 <put_files_struct+67/d0>
Trace; c011ea25 <do_exit+a5/230>
Trace; c011ebe1 <sys_exit+11/20>
Trace; c0108fe3 <system_call+33/40>

Code; c01b72bd <pool_find_page+d/30>
00000000 <_EIP>:
Code; c01b72bd <pool_find_page+d/30> <=====
 0: 8b 01 mov (%ecx),%eax <=====
Code; c01b72bf <pool_find_page+f/30>
 2: 39 c8 cmp %ecx,%eax
Code; c01b72c1 <pool_find_page+11/30>
 4: 74 14 je 1a <_EIP+0x1a>
c01b72d7 <pool_find_page+27/30>
Code; c01b72c3 <pool_find_page+13/30>
 6: 8b 50 0c mov 0xc(%eax),%edx
Code; c01b72c6 <pool_find_page+16/30>
 9: 39 d3 cmp %edx,%ebx
Code; c01b72c8 <pool_find_page+18/30>
 b: 72 07 jb 14 <_EIP+0x14>
c01b72d1 <pool_find_page+21/30>
Code; c01b72ca <pool_find_page+1a/30>
 d: 03 51 18 add 0x18(%ecx),%edx
Code; c01b72cd <pool_find_page+1d/30>
 10: 39 d3 cmp %edx,%ebx
Code; c01b72cf <pool_find_page+1f/30>
 12: 72 08 jb 1c <_EIP+0x1c>
c01b72d9 <pool_find_page+29/30>

[6.] A small shell script or example program which triggers
the problem (if possible)

On my PC, I can easily reproduce the oops this way:

$ /sbin/modprobe usb-uhci
$ # Next 2 progs are from eciadsl-usermode_0.5.tgz
$ /usr/local/bin/eci-load1
/etc/eciadsl/eci_firm_kit_wanadoo.bin >log1.txt 2>&1
$ /usr/local/bin/eci-load2 /etc/eciadsl/eci_wan3.dmt.bin
>log2.txt 2>&1
$ # Call to my script "/etc/ppp/peers/adsl"
$ /usr/sbin/pppd call adsl
$ # Wait some time ...
$ sleep 5
$ kill -TERM `pidof pppd`
$ # And that's where it should "oops"
$ /sbin/modprobe -r usb-uhci

Sometimes, I have to re-run this script 2 or 3 times before
it "oops" really ...

[7.1.] Software (add the output of the ver_linux script here)
Linux phoenix.home 2.4.19-8mdk #1 Sat Aug 31 00:49:47 CEST
2002 i686 unknown unknown GNU/Linux
 
Gnu C 3.2
Gnu make 3.79.1
util-linux 2.11u
mount 2.11u
modutils 2.4.19
e2fsprogs 1.27ea
reiserfsprogs 3.6.3
PPP 2.4.1
Linux C Library 2.2.5
Dynamic linker (ldd) 2.2.5
Procps 2.0.7
Net-tools 1.60
Console-tools 0.2.3
Sh-utils 2.0.15
Modules Loaded n_hdlc ppp_synctty lp parport_pc
parport sr_mod floppy ppp_async ppp_generic slhc agpgart
NVdriver emu10k1 ac97_codec sound soundcore nfsd lockd
sunrpc ipchains usb-uhci usbcore af_packet ne 8390
nls_iso8859-15 nls_cp850 vfat fat ide-cd cdrom ide-scsi
scsi_mod rtc reiserfs

[7.2.] Processor information (from /proc/cpuinfo):

processor : 0
vendor_id : AuthenticAMD
cpu family : 6
model : 1
model name : AMD-K7(tm) Processor
stepping : 2
cpu MHz : 704.954
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 sep
mtrr pge mca cmov pat mmx syscall mmxext 3dnowext 3dnow
bogomips : 1405.74

[7.3.] Module information (from /proc/modules):

usb-uhci 21676 0 (unused)
ppp_async 7456 0 (autoclean) (unused)
ppp_generic 20064 0 (autoclean) [ppp_async]
slhc 5072 0 (autoclean) [ppp_generic]
agpgart 31840 3 (autoclean)
lp 6720 0
parport_pc 21672 1
parport 23936 1 [lp parport_pc]
NVdriver 989312 10 (autoclean)
emu10k1 56172 0
ac97_codec 9928 0 [emu10k1]
sound 55732 0 [emu10k1]
soundcore 3780 0 [emu10k1 sound]
nfsd 66448 0 (autoclean)
lockd 46480 0 (autoclean) [nfsd]
sunrpc 60188 0 (autoclean) [nfsd lockd]
ipchains 39656 0 (unused)
usbcore 57984 1 [usb-uhci]
af_packet 13000 0 (autoclean)
ne 6544 1 (autoclean)
8390 6192 0 (autoclean) [ne]
nls_iso8859-15 3356 9 (autoclean)
nls_cp850 3580 9 (autoclean)
vfat 9556 9 (autoclean)
fat 31864 0 (autoclean) [vfat]
ide-cd 28744 0
cdrom 26848 0 [ide-cd]
ide-scsi 8180 0
scsi_mod 90436 1 [ide-scsi]
rtc 6560 0 (autoclean)
reiserfs 169776 3

[7.4.] SCSI information (from /proc/scsi/scsi)

Attached devices:
Host: scsi0 Channel: 00 Id: 01 Lun: 00
 Vendor: YAMAHA Model: CRW3200E Rev: 1.0d
 Type: CD-ROM ANSI SCSI
revision: 02

[X.] Other notes, patches, fixes, workarounds:

The tar that adds ECI modem support can be found under
http://prdownloads.sourceforge.net/eciadsl/eciadsl-usermode_0.5.tgz

In addition it includes all needed stuff to start an
internet connection through pppd.

______________________________________________________
Boîte aux lettres - Caramail - http://www.caramail.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Sep 15 2002 - 22:00:17 EST