Hi all,

I have persistent problems with an USB->serial adaptor which contains an
FTDI FT232AM chip.

Two symptoms are observable, depending on whether ftdi_sio is loaded
before or after attaching the adaptor. The serial port has not been
opened in both cases.
1) when the driver is loaded before, my machine locks completely when
      the adaptor is unplugged
2) when the driver is loaded after attaching the adaptor, the machine
      sometimes locks and sometimes writes an oops to the kernel log

1) or 2) occur always when the adaptor is unplugged with loaded driver.
No problems at all when ftdi_sio module is never loaded during the
process.

The machine runs a stock 2.4.30 kernel with USB OHCI/EHCI. The USB
controller is
USB Controller: nVidia Corporation nForce2 USB Controller (rev a3)

devices.txt contains the output of /proc/bus/usb/devices (ftdi_sio not
loaded). The device in question is
T:  Bus=02 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#=  4 Spd=12  MxCh= 0
P:  Vendor=0403 ProdID=fb5a Rev= 2.00

ksymoops_unplug.txt is the output of ksymoops on the oops message. Symbols have been deleted.
ksymoops_modprobe-r.txt is the oops when ftdi_sio is removed with
'modprobe -r ftdi_sio' (device is not attached!).



It seems to me that something goes wrong inside ftdi_shutdown() when the device is unplugged. I have no clue what the problem could be with modprobe -r. Suggestions are welcome.



Best regards

   Arnim

T:  Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 6
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS= 8 #Cfgs=  1
P:  Vendor=0000 ProdID=0000 Rev= 2.04
S:  Manufacturer=Linux 2.4.30 ehci_hcd
S:  Product=nVidia Corporation nForce2 USB Controller
S:  SerialNumber=00:02.2
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=256ms
T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 3
B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0000 ProdID=0000 Rev= 0.00
S:  Product=USB OHCI Root Hub
S:  SerialNumber=f8808000
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=255ms
T:  Bus=02 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#=  4 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0403 ProdID=fb5a Rev= 2.00
S:  Manufacturer=ELV AG
S:  Product=ELV Univ. USB-Modul UM100
S:  SerialNumber=ELKNE1Z6
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 44mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 3
B:  Alloc= 56/900 us ( 6%), #Int=  4, #Iso=  0
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0000 ProdID=0000 Rev= 0.00
S:  Product=USB OHCI Root Hub
S:  SerialNumber=f8806000
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=255ms
T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  5 Spd=12  MxCh= 4
D:  Ver= 1.01 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=05e3 ProdID=0604 Rev= 0.12
S:  Product=USB Hub
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=255ms
T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#=  6 Spd=12  MxCh= 2
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=04cc ProdID=1122 Rev= 1.10
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=255ms
T:  Bus=01 Lev=02 Prnt=06 Port=01 Cnt=01 Dev#=  7 Spd=12  MxCh= 0
D:  Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=06cd ProdID=c001 Rev= 1.55
S:  Manufacturer=ACME usb Widgets
S:  Product=Sun keyboard & mouse HID
C:* #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=200mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=01 Driver=hid
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
I:  If#= 1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=02 Driver=hid
E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=10ms



ksymoops 2.4.8 on i686 2.4.30.  Options used
     -V (default)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.4.30/ (default)
     -M (specified)

[lots of symbols deleted]

Apr 25 16:33:30 lola kernel: hub.c: new USB device 00:02.1-3, assigned address 2
Apr 25 16:33:30 lola kernel: usb.c: USB device 2 (vend/prod 0x403/0xfb5a) is 
not claimed by any active driver.
Apr 25 16:33:37 lola kernel: usbserial.c: USB Serial support registered for 
FTDI SIO
Apr 25 16:33:37 lola kernel: usbserial.c: USB Serial support registered for 
FTDI 8U232AM Compatible
Apr 25 16:33:37 lola kernel: usbserial.c: USB Serial support registered for 
FTDI FT232BM Compatible
Apr 25 16:33:37 lola kernel: usbserial.c: USB Serial support registered for 
USB-UIRT Infrared Tranceiver
Apr 25 16:33:37 lola kernel: usbserial.c: USB Serial support registered for 
Home-Electronics TIRA-1 IR Transceiver
Apr 25 16:33:37 lola kernel: usbserial.c: USB Serial support registered for 
FTDI SIO compatible
Apr 25 16:33:37 lola kernel: usbserial.c: FTDI SIO compatible converter detected
Apr 25 16:33:37 lola kernel: usbserial.c: FTDI SIO compatible converter now 
attached to ttyUSB0 (or usb/tts/0 for devfs)
Apr 25 16:33:37 lola kernel: ftdi_sio.c: v1.3.5:USB FTDI Serial Converters 
Driver
Apr 25 16:33:55 lola kernel: usb.c: USB disconnect on device 00:02.1-3 address 2
Apr 25 16:33:55 lola kernel: Unable to handle kernel NULL pointer dereference 
at virtual address 0000000c
Apr 25 16:33:55 lola kernel: c012dc6c
Apr 25 16:33:55 lola kernel: *pde = 00000000
Apr 25 16:33:55 lola kernel: Oops: 0000
Apr 25 16:33:55 lola kernel: CPU:    0
Apr 25 16:33:55 lola kernel: EIP:    0010:[kfree+44/192]    Tainted: P 
Apr 25 16:33:55 lola kernel: EIP:    0010:[<c012dc6c>]    Tainted: P 
Using defaults from ksymoops -t elf32-i386 -a i386
Apr 25 16:33:55 lola kernel: EFLAGS: 00210016
Apr 25 16:33:55 lola kernel: eax: 00c60c60   ebx: 080480f4   ecx: 00000000   
edx: c100001c
Apr 25 16:33:55 lola kernel: esi: 00000000   edi: 00200002   ebp: f35d1380   
esp: f7c2df08
Apr 25 16:33:55 lola kernel: ds: 0018   es: 0018   ss: 0018
Apr 25 16:33:55 lola kernel: Process khubd (pid: 8, stackpage=f7c2d000)
Apr 25 16:33:55 lola kernel: Stack: f35d13ac 00200246 00000000 f35d1380 
c01cf7de 080480f4 f9ba1cf3 080480f4 
Apr 25 16:33:55 lola kernel:        f692e000 00000001 f692e000 00000000 
f88aa234 f692e000 f692e01c f88ab502 
Apr 25 16:33:55 lola kernel:        f692e000 f88ac940 f1b78f00 f88ac960 
c01d067a f36a1c00 f692e000 00000100 
Apr 25 16:33:55 lola kernel: Call Trace:    [usb_free_urb+14/32] [<f9ba1cf3>] 
[<f88aa234>] [<f88ab502>] [<f88ac940>]
Apr 25 16:33:55 lola kernel: Call Trace:    [<c01cf7de>] [<f9ba1cf3>] 
[<f88aa234>] [<f88ab502>] [<f88ac940>]
Apr 25 16:33:55 lola kernel:   [<f88ac960>] [usb_disconnect+138/304] 
[usb_hub_port_connect_change+74/528] [usb_hub_events+221/624] 
[usb_hub_thread+53/176] [arch_kernel_thread+40/64]
Apr 25 16:33:55 lola kernel:   [<f88ac960>] [<c01d067a>] [<c01d2a8a>] 
[<c01d2d2d>] [<c01d2ef5>] [<c01055a8>]
Apr 25 16:33:55 lola kernel: Code: 2b 59 0c 89 d8 31 d2 f7 76 18 89 c3 8b 41 14 
89 44 99 18 89


>>EIP; c012dc6c <kfree+2c/c0>   <=====

>>edx; c100001c <_end+d0b104/38515148>
>>ebp; f35d1380 <_end+332dc468/38515148>
>>esp; f7c2df08 <_end+37938ff0/38515148>

Trace; c01cf7de <usb_free_urb+e/20>
Trace; f9ba1cf3 <.data.end+1d7c/????>
Trace; f88aa234 <[usbserial]serial_shutdown+34/50>
Trace; f88ab502 <[usbserial]usb_serial_disconnect+92/200>
Trace; f88ac940 <[usbserial]usb_serial_driver+0/3c>
Trace; f88ac960 <[usbserial]usb_serial_driver+20/3c>
Trace; f88ac960 <[usbserial]usb_serial_driver+20/3c>
Trace; c01d067a <usb_disconnect+8a/130>
Trace; c01d2a8a <usb_new_device+16ca/1c50>
Trace; c01d2d2d <usb_new_device+196d/1c50>
Trace; c01d2ef5 <usb_new_device+1b35/1c50>
Trace; c01055a8 <machine_power_off+128/280>

Code;  c012dc6c <kfree+2c/c0>
00000000 <_EIP>:
Code;  c012dc6c <kfree+2c/c0>   <=====
   0:   2b 59 0c                  sub    0xc(%ecx),%ebx   <=====
Code;  c012dc6f <kfree+2f/c0>
   3:   89 d8                     mov    %ebx,%eax
Code;  c012dc71 <kfree+31/c0>
   5:   31 d2                     xor    %edx,%edx
Code;  c012dc73 <kfree+33/c0>
   7:   f7 76 18                  divl   0x18(%esi)
Code;  c012dc76 <kfree+36/c0>
   a:   89 c3                     mov    %eax,%ebx
Code;  c012dc78 <kfree+38/c0>
   c:   8b 41 14                  mov    0x14(%ecx),%eax
Code;  c012dc7b <kfree+3b/c0>
   f:   89 44 99 18               mov    %eax,0x18(%ecx,%ebx,4)
Code;  c012dc7f <kfree+3f/c0>
  13:   89 00                     mov    %eax,(%eax)



ksymoops 2.4.8 on i686 2.4.30.  Options used
     -V (default)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.4.30/ (default)
     -M (specified)

[lots of symbols deleted]

Apr 25 17:24:05 lola kernel: Unable to handle kernel paging request at virtual 
address f9bb0d50
Apr 25 17:24:05 lola kernel: f88ab82b
Apr 25 17:24:05 lola kernel: *pde = 364a5067
Apr 25 17:24:05 lola kernel: Oops: 0002
Apr 25 17:24:05 lola kernel: CPU:    0
Apr 25 17:24:05 lola kernel: EIP:    0010:[<f88ab82b>]    Tainted: P 
Using defaults from ksymoops -t elf32-i386 -a i386
Apr 25 17:24:05 lola kernel: EFLAGS: 00210202
Apr 25 17:24:05 lola kernel: eax: f88ac97c   ebx: 00000000   ecx: f88ac8f0   
edx: f9bb0d50
Apr 25 17:24:05 lola kernel: esi: 000000ff   edi: f88ac8e0   ebp: f88ad6c0   
esp: e4ffff7c
Apr 25 17:24:05 lola kernel: ds: 0018   es: 0018   ss: 0018
Apr 25 17:24:05 lola kernel: Process modprobe.old (pid: 2501, 
stackpage=e4fff000)
Apr 25 17:24:05 lola kernel: Stack: f88a9000 fffffff0 f88a9000 bfffe228 
f88ab76a f88ac8e0 c0119dd7 f88a9000 
Apr 25 17:24:05 lola kernel:        fffffff0 e4fd8000 bfffe228 c0119167 
f88a9000 00000000 e4ffe000 40014020 
Apr 25 17:24:05 lola kernel:        bffff464 c0106c77 0806da78 0806da78 
bfffe228 40014020 bffff464 bfffe228 
Apr 25 17:24:05 lola kernel: Call Trace:    [<f88ab76a>] [<f88ac8e0>] 
[free_module+23/160] [sys_delete_module+247/448] [system_call+51/56]
Apr 25 17:24:05 lola kernel: Call Trace:    [<f88ab76a>] [<f88ac8e0>] 
[<c0119dd7>] [<c0119167>] [<c0106c77>]
Apr 25 17:24:05 lola kernel: Code: 89 02 c7 47 10 00 00 00 00 c7 41 04 00 00 00 
00 5b 5e 5f 5d 


>>EIP; f88ab82b <[usbserial]usb_serial_deregister+5b/70>   <=====

>>eax; f88ac97c <[usbserial]usb_serial_driver_list+0/8>
>>ecx; f88ac8f0 <[usbserial]generic_device+10/54>
>>edi; f88ac8e0 <[usbserial]generic_device+0/54>
>>ebp; f88ad6c0 <[usbserial].data.end+c65/2605>
>>esp; e4ffff7c <_end+24d0b064/38515148>

Trace; f88ab76a <[usbserial]usb_serial_exit+a/30>
Trace; f88ac8e0 <[usbserial]generic_device+0/54>
Trace; f88ab76a <[usbserial]usb_serial_exit+a/30>
Trace; f88ac8e0 <[usbserial]generic_device+0/54>
Trace; c0119dd7 <try_inc_mod_count+d97/1600>
Trace; c0119167 <try_inc_mod_count+127/1600>
Trace; c0106c77 <__up_wakeup+1067/1430>

Code;  f88ab82b <[usbserial]usb_serial_deregister+5b/70>
00000000 <_EIP>:
Code;  f88ab82b <[usbserial]usb_serial_deregister+5b/70>   <=====
   0:   89 02                     mov    %eax,(%edx)   <=====
Code;  f88ab82d <[usbserial]usb_serial_deregister+5d/70>
   2:   c7 47 10 00 00 00 00      movl   $0x0,0x10(%edi)
Code;  f88ab834 <[usbserial]usb_serial_deregister+64/70>
   9:   c7 41 04 00 00 00 00      movl   $0x0,0x4(%ecx)
Code;  f88ab83b <[usbserial]usb_serial_deregister+6b/70>
  10:   5b                        pop    %ebx
Code;  f88ab83c <[usbserial]usb_serial_deregister+6c/70>
  11:   5e                        pop    %esi
Code;  f88ab83d <[usbserial]usb_serial_deregister+6d/70>
  12:   5f                        pop    %edi
Code;  f88ab83e <[usbserial]usb_serial_deregister+6e/70>
  13:   5d                        pop    %ebp

Reply via email to