Bug 13680 - OOPS when disconnecting open FTDI device
Summary: OOPS when disconnecting open FTDI device
Status: RESOLVED CODE_FIX
Alias: None
Product: Drivers
Classification: Unclassified
Component: USB (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Greg Kroah-Hartman
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-06-30 08:05 UTC by Bas Zoetekouw
Modified: 2009-08-04 15:12 UTC (History)
1 user (show)

See Also:
Kernel Version: 2.6.29 (from Debian sid)
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Bas Zoetekouw 2009-06-30 08:05:48 UTC
When I disconnect an FTDI usb serial port while it is opened, the kernel OOPSes:

when connecting:

Jun 30 09:49:11 basbak2 kernel: [80261.152014] usb 6-2: new full speed USB device using uhci_hcd and address 2
Jun 30 09:49:11 basbak2 kernel: [80261.363023] usb 6-2: New USB device found, idVendor=0403, idProduct=6001
Jun 30 09:49:11 basbak2 kernel: [80261.363026] usb 6-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jun 30 09:49:11 basbak2 kernel: [80261.363028] usb 6-2: Product: Holst Centre Base Station
Jun 30 09:49:11 basbak2 kernel: [80261.363030] usb 6-2: Manufacturer: Holst Centre
Jun 30 09:49:11 basbak2 kernel: [80261.363032] usb 6-2: SerialNumber: FTRDPHYH
Jun 30 09:49:11 basbak2 kernel: [80261.363122] usb 6-2: configuration #1 chosen from 1 choice
Jun 30 09:49:12 basbak2 kernel: [80261.390444] usbcore: registered new interface driver usbserial
Jun 30 09:49:12 basbak2 kernel: [80261.390456] USB Serial support registered for generic
Jun 30 09:49:12 basbak2 kernel: [80261.390488] usbcore: registered new interface driver usbserial_generic
Jun 30 09:49:12 basbak2 kernel: [80261.390489] usbserial: USB Serial Driver core
Jun 30 09:49:12 basbak2 kernel: [80261.396649] USB Serial support registered for FTDI USB Serial Device
Jun 30 09:49:12 basbak2 kernel: [80261.396724] ftdi_sio 6-2:1.0: FTDI USB Serial Device converter detected
Jun 30 09:49:12 basbak2 kernel: [80261.396741] usb 6-2: Detected FT232RL
Jun 30 09:49:12 basbak2 kernel: [80261.396785] usb 6-2: FTDI USB Serial Device converter now attached to ttyUSB0
Jun 30 09:49:12 basbak2 kernel: [80261.396792] usbcore: registered new interface driver ftdi_sio
Jun 30 09:49:12 basbak2 kernel: [80261.396794] ftdi_sio: v1.4.3:USB FTDI Serial Converters Driver

when disconnecting:

Jun 30 09:50:02 basbak2 kernel: [80312.224043] usb 6-2: USB disconnect, address 2
Jun 30 09:50:02 basbak2 kernel: [80312.224271] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
Jun 30 09:50:02 basbak2 kernel: [80312.224278] ftdi_sio 6-2:1.0: device disconnected
Jun 30 09:50:02 basbak2 kernel: [80312.224840] BUG: unable to handle kernel NULL pointer dereference at 0000000000000088
Jun 30 09:50:02 basbak2 kernel: [80312.224842] IP: [<ffffffff8024c831>] lock_timer_base+0x10/0x4b
Jun 30 09:50:02 basbak2 kernel: [80312.224849] PGD 9a4a6067 PUD 9a42a067 PMD 0 
Jun 30 09:50:02 basbak2 kernel: [80312.224851] Oops: 0000 [#1] SMP 
Jun 30 09:50:02 basbak2 kernel: [80312.224853] last sysfs file: /sys/devices/virtual/net/pan0/statistics/collisions
Jun 30 09:50:02 basbak2 kernel: [80312.224855] CPU 1 
Jun 30 09:50:02 basbak2 kernel: [80312.224856] Modules linked in: ftdi_sio usbserial binfmt_misc radeon drm bridge stp bnep sco rfcomm l2cap ppdev parport_pc lp parport cpufreq_powersave autofs4 nls_utf8 cifs nls
Jun 30 09:50:02 basbak2 kernel: ys nbd
Jun 30 09:50:02 basbak2 kernel: [80312.224912] Pid: 7341, comm: cat Tainted: G         C 2.6.29-2-amd64 #1 OptiPlex 760                 
Jun 30 09:50:02 basbak2 kernel: [80312.224914] RIP: 0010:[<ffffffff8024c831>]  [<ffffffff8024c831>] lock_timer_base+0x10/0x4b
Jun 30 09:50:02 basbak2 kernel: [80312.224917] RSP: 0018:ffff8800c4d3fd28  EFLAGS: 00010296
Jun 30 09:50:02 basbak2 kernel: [80312.224918] RAX: ffff880124870780 RBX: 0000000000000060 RCX: ffffffffa0564390
Jun 30 09:50:02 basbak2 kernel: [80312.224920] RDX: ffff8800c4d79140 RSI: ffff8800c4d3fd68 RDI: 0000000000000060
Jun 30 09:50:02 basbak2 kernel: [80312.224921] RBP: 00000000ffffffff R08: 0000000000000000 R09: 0000000000000003
Jun 30 09:50:02 basbak2 kernel: [80312.224923] R10: 00000000ffffffff R11: ffffffff80479de2 R12: 0000000000000060
Jun 30 09:50:02 basbak2 kernel: [80312.224924] R13: ffff8800c4d3fd68 R14: ffff880121d3d490 R15: ffffffffa05645a0
Jun 30 09:50:02 basbak2 kernel: [80312.224926] FS:  00007f72f7e516f0(0000) GS:ffff880126a5b9c0(0000) knlGS:0000000000000000
Jun 30 09:50:02 basbak2 kernel: [80312.224927] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
Jun 30 09:50:02 basbak2 kernel: [80312.224929] CR2: 0000000000000088 CR3: 00000000c4d92000 CR4: 00000000000406e0
Jun 30 09:50:02 basbak2 kernel: [80312.224931] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
Jun 30 09:50:02 basbak2 kernel: [80312.224932] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Jun 30 09:50:02 basbak2 kernel: [80312.224934] Process cat (pid: 7341, threadinfo ffff8800c4d3e000, task ffff8800cf1e4cc0)
Jun 30 09:50:02 basbak2 kernel: [80312.224935] Stack:
Jun 30 09:50:02 basbak2 kernel: [80312.224936]  ffff8800c4d79140 0000000000000060 00000000ffffffff 0000000000000400
Jun 30 09:50:02 basbak2 kernel: [80312.224938]  ffff880124870780 ffffffff8024c882 ffff88012318ad58 7fffffffffffffff
Jun 30 09:50:02 basbak2 kernel: [80312.224941]  0000000000000000 0000000000000060 0000000000000000 ffffffff8024c8d3
Jun 30 09:50:02 basbak2 kernel: [80312.224944] Call Trace:
Jun 30 09:50:02 basbak2 kernel: [80312.224945]  [<ffffffff8024c882>] ? try_to_del_timer_sync+0x16/0x5b
Jun 30 09:50:02 basbak2 kernel: [80312.224948]  [<ffffffff8024c8d3>] ? del_timer_sync+0xc/0x16
Jun 30 09:50:02 basbak2 kernel: [80312.224950]  [<ffffffffa05593f4>] ? ftdi_close+0xee/0x115 [ftdi_sio]
Jun 30 09:50:02 basbak2 kernel: [80312.224958]  [<ffffffff80227dbc>] ? default_spin_lock_flags+0x5/0x9
Jun 30 09:50:02 basbak2 kernel: [80312.224961]  [<ffffffff80479d3c>] ? _spin_lock_irqsave+0x24/0x2c
Jun 30 09:50:02 basbak2 kernel: [80312.224964]  [<ffffffff802c7c3b>] ? fasync_helper+0x47/0xd1
Jun 30 09:50:02 basbak2 kernel: [80312.224968]  [<ffffffffa054da24>] ? serial_close+0x99/0x157 [usbserial]
Jun 30 09:50:02 basbak2 kernel: [80312.224973]  [<ffffffff803a47c0>] ? tty_release_dev+0x193/0x473
Jun 30 09:50:02 basbak2 kernel: [80312.224976]  [<ffffffff80236f90>] ? __wake_up+0x30/0x44
Jun 30 09:50:02 basbak2 kernel: [80312.224979]  [<ffffffff803a8d96>] ? tty_ldisc_deref+0x59/0x6b
Jun 30 09:50:02 basbak2 kernel: [80312.224981]  [<ffffffff803a4ab1>] ? tty_release+0x11/0x1a
Jun 30 09:50:02 basbak2 kernel: [80312.224983]  [<ffffffff802be27a>] ? __fput+0xc6/0x16e
Jun 30 09:50:02 basbak2 kernel: [80312.224987]  [<ffffffff802bb9a4>] ? filp_close+0x5b/0x62
Jun 30 09:50:02 basbak2 kernel: [80312.224989]  [<ffffffff802bba46>] ? sys_close+0x9b/0xdb
Jun 30 09:50:02 basbak2 kernel: [80312.224991]  [<ffffffff802110aa>] ? system_call_fastpath+0x16/0x1b
Jun 30 09:50:02 basbak2 kernel: [80312.224994] Code: 48 39 ef 49 89 fc 78 03 49 89 ec 48 83 c4 30 4c 89 e0 5b 5d 41 5c 41 5d 41 5e c3 41 55 49 89 f5 41 54 49 89 fc 55 53 48 83 ec 08 <49> 8b 5c 24 28 48 89 dd 48 8
Jun 30 09:50:02 basbak2 kernel: [80312.225014] RIP  [<ffffffff8024c831>] lock_timer_base+0x10/0x4b
Jun 30 09:50:02 basbak2 kernel: [80312.225017]  RSP <ffff8800c4d3fd28>
Jun 30 09:50:02 basbak2 kernel: [80312.225018] CR2: 0000000000000088
Jun 30 09:50:02 basbak2 kernel: [80312.225019] ---[ end trace cd10c0a112729819 ]---



I can reproduce this, also with a different device.  The oops does not occur if the ttyUSBn port isn't open (I had it opened with a simple "cat /dev/ttyUSB0").
Comment 1 Damjan Georgievski 2009-08-04 13:13:35 UTC
This happened to me with a "pl2303" USB serial converter on 2.6.29, but I just upgraded to 2.6.30.4 and it seems corrected.
Comment 2 Greg Kroah-Hartman 2009-08-04 15:12:04 UTC
Great, thanks for letting us know.

Note You need to log in before you can comment on or make changes to this bug.