linux/drivers/usb/serial
Ionut Nicu b14de38572 USB: ti_usb: fix module removal
If usb_deregister() is called after usb_serial_deregister() when
the device is plugged in, the following Oops occurs:

[   95.337377] BUG: unable to handle kernel NULL pointer dereference at 00000010
[   95.338236] IP: [<c0776b2d>] klist_put+0x12/0x62
[   95.338356] *pdpt = 000000003001a001 *pde = 0000000000000000
[   95.338356] Oops: 0000 [#1] SMP
[   95.340499] last sysfs file: /sys/devices/pci0000:00/0000:00:1d.2/usb8/idVendor
[   95.340499] Modules linked in: ti_usb_3410_5052(-) usbserial cpufreq_ondemand acpi_cpufreq mperf iptable_nat nf_nat iptable_mangle ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_filter ip6_tables ipv6 uinput arc4 ecb iwlagn iwlcore mac80211 cfg80211 microcode pcspkr acer_wmi joydev wmi sky2 [last unloaded: scsi_wait_scan]
[   95.341908]
[   95.341908] Pid: 1532, comm: modprobe Not tainted 2.6.37-rc7+ #6 Eiger                          /Aspire 5930
[   95.341908] EIP: 0060:[<c0776b2d>] EFLAGS: 00010246 CPU: 0
[   95.341908] EIP is at klist_put+0x12/0x62
[   95.341908] EAX: 00000000 EBX: eedc0c84 ECX: c09c21b4 EDX: 00000001
[   95.341908] ESI: 00000000 EDI: efaa0c1c EBP: f214fe2c ESP: f214fe1c
[   95.341908]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
[   95.341908] Process modprobe (pid: 1532, ti=f214e000 task=efaaf080 task.ti=f214e000)
[   95.341908] Stack:
[   95.341908]  f214fe24 eedc0c84 efaaf080 efaa0c1c f214fe34 c0776ba8 f214fe5c c0776c76
[   95.341908]  c09c21b4 c09c21b4 eedc0c84 efaaf080 00000000 c0634398 eafe2d1c f7b515f0
[   95.341908]  f214fe6c c0631b5c eafe2d50 eafe2d1c f214fe7c c0631ba2 eafe2d1c eafe2c00
[   95.341908] Call Trace:
[   95.341908]  [<c0776ba8>] ? klist_del+0xd/0xf
[   95.341908]  [<c0776c76>] ? klist_remove+0x48/0x74
[   95.341908]  [<c0634398>] ? devres_release_all+0x49/0x51
[   95.341908]  [<c0631b5c>] ? __device_release_driver+0x7b/0xa4
[   95.341908]  [<c0631ba2>] ? device_release_driver+0x1d/0x28
[   95.341908]  [<c06317c4>] ? bus_remove_device+0x92/0xa1
[   95.341908]  [<c062f3d8>] ? device_del+0xf9/0x13e
[   95.341908]  [<f7b06146>] ? usb_serial_disconnect+0xd9/0x116 [usbserial]
[   95.341908]  [<c0681e3f>] ? usb_disable_interface+0x32/0x40
[   95.341908]  [<c0683972>] ? usb_unbind_interface+0x48/0xfd
[   95.341908]  [<c0631b43>] ? __device_release_driver+0x62/0xa4
[   95.341908]  [<c06320b9>] ? driver_detach+0x62/0x81
[   95.341908]  [<c0631a41>] ? bus_remove_driver+0x8f/0xae
[   95.341908]  [<c063214c>] ? driver_unregister+0x50/0x57
[   95.341908]  [<c0682f95>] ? usb_deregister+0x77/0x84
[   95.341908]  [<f7b505b6>] ? ti_exit+0x26/0x28 [ti_usb_3410_5052]
[   95.341908]  [<c046a307>] ? sys_delete_module+0x181/0x1de
[   95.341908]  [<c04e2727>] ? path_put+0x1a/0x1d
[   95.341908]  [<c047f4c5>] ? audit_syscall_entry+0x116/0x138
[   95.341908]  [<c04094df>] ? sysenter_do_call+0x12/0x28
[   95.341908] Code: 00 83 7d f0 00 74 09 85 f6 74 05 89 f0 ff 55 f0 8b 43 04 5a 5b 5e 5f 5d c3 55 89 e5 57 56 53 89 c3 83 ec 04 8b 30 83 e6 fe 89 f0 <8b> 7e 10 88 55 f0 e8 47 26 01 00 8a 55 f0 84 d2 74 17 f6 03 01
[   95.341908] EIP: [<c0776b2d>] klist_put+0x12/0x62 SS:ESP 0068:f214fe1c
[   95.341908] CR2: 0000000000000010
[   95.342357] ---[ end trace 8124d00ad871ad18 ]---

Signed-off-by: Ionut Nicu <ionut.nicu@mindbit.ro>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-02-03 16:40:59 -08:00
..
aircable.c USB: aircable: fix incorrect write-buffer length 2010-05-20 13:21:49 -07:00
ark3116.c tty: Convert the USB drivers to the new icount interface 2010-10-22 10:20:04 -07:00
belkin_sa.c USB: belkin_sa: implement line status handling 2010-05-20 13:21:48 -07:00
belkin_sa.h USB: belkin_sa.h: checkpatch cleanups 2010-05-20 13:21:46 -07:00
bus.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ch341.c USB: serial: handle Data Carrier Detect changes 2011-01-22 18:53:26 -08:00
ChangeLog.history trivial: Fix misspelling of firmware 2009-03-30 15:21:59 +02:00
console.c usb-console: pass baud from console to the initial tty open 2010-05-20 13:21:32 -07:00
cp210x.c USB: serial: handle Data Carrier Detect changes 2011-01-22 18:53:26 -08:00
cyberjack.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
cypress_m8.c drivers/usb: Remove unnecessary return's from void functions 2010-08-10 14:25:42 +02:00
cypress_m8.h USB: cypress_m8.h: checkpatch cleanups 2010-05-20 13:21:46 -07:00
digi_acceleport.c USB: serial: handle Data Carrier Detect changes 2011-01-22 18:53:26 -08:00
empeg.c USB: empeg: reimplement using generic framework 2010-05-20 13:21:48 -07:00
ezusb_convert.pl
ezusb.c
ftdi_sio_ids.h USB: serial: Updated support for ICOM devices 2011-01-22 18:48:10 -08:00
ftdi_sio.c USB: serial: Updated support for ICOM devices 2011-01-22 18:48:10 -08:00
ftdi_sio.h USB: ftdi_sio: checkpatch cleanups 2010-05-20 13:21:46 -07:00
funsoft.c USB serial: make USB device id constant 2010-03-02 14:54:16 -08:00
garmin_gps.c drivers/usb: Remove unnecessary return's from void functions 2010-08-10 14:25:42 +02:00
generic.c USB: serial: handle Data Carrier Detect changes 2011-01-22 18:53:26 -08:00
hp4x.c USB serial: make USB device id constant 2010-03-02 14:54:16 -08:00
io_16654.h
io_edgeport.c USB: io_edgeport: fix the reported firmware major and minor 2011-02-03 16:40:58 -08:00
io_edgeport.h USB: io_edgeport: checkpatch cleanups 2010-05-20 13:21:47 -07:00
io_ionsp.h USB: io_edgeport: checkpatch cleanups 2010-05-20 13:21:47 -07:00
io_tables.h USB serial: add missing .usb_driver field in serial drivers 2011-01-22 18:38:59 -08:00
io_ti.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-10-24 13:41:39 -07:00
io_ti.h USB: io_edgeport: checkpatch cleanups 2010-05-20 13:21:47 -07:00
io_usbvend.h USB: io_edgeport: checkpatch cleanups 2010-05-20 13:21:47 -07:00
ipaq.c Revert "USB: Adding support for HTC Smartphones to ipaq" 2010-08-10 14:35:35 -07:00
ipw.c USB: ipw: reimplement using generic framework 2010-05-20 13:21:46 -07:00
ir-usb.c USB: ir-usb: fix incorrect write-buffer length 2010-05-20 13:21:50 -07:00
iuu_phoenix.c USB serial: add missing .usb_driver field in serial drivers 2011-01-22 18:38:59 -08:00
iuu_phoenix.h
Kconfig Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-10-24 13:41:39 -07:00
keyspan_pda.c USB: serial: handle Data Carrier Detect changes 2011-01-22 18:53:26 -08:00
keyspan_usa26msg.h
keyspan_usa28msg.h
keyspan_usa49msg.h
keyspan_usa67msg.h
keyspan_usa90msg.h
keyspan.c Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00
keyspan.h USB serial: add missing .usb_driver field in serial drivers 2011-01-22 18:38:59 -08:00
kl5kusb105.c fix typos concerning "initiali[zs]e" 2010-06-16 18:05:05 +02:00
kl5kusb105.h USB: kl5kusb105.h: checkpatch cleanups 2010-05-20 13:21:47 -07:00
kobil_sct.c USB: kobil: fix memory leak 2010-05-20 13:21:47 -07:00
kobil_sct.h USB: kobil_sct.h: checkpatch cleanups 2010-05-20 13:21:47 -07:00
Makefile usb: makefile cleanup 2010-10-22 10:22:07 -07:00
Makefile-keyspan_pda_fw
mct_u232.c USB: mct_u232: fix broken close 2010-10-22 10:22:19 -07:00
mct_u232.h Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00
mos7720.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-10-24 13:41:39 -07:00
mos7840.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-10-24 13:41:39 -07:00
moto_modem.c USB serial: add missing .usb_driver field in serial drivers 2011-01-22 18:38:59 -08:00
navman.c USB: add device IDs for igotu to navman 2010-08-23 20:50:15 -07:00
omninet.c drivers/usb: Remove unnecessary return's from void functions 2010-08-10 14:25:42 +02:00
opticon.c USB: opticon: Whitespace fixes in opticon driver 2010-10-22 10:22:10 -07:00
option.c USB: adding USB support for Cinterion's HC2x, EU3 and PH8 products 2011-01-22 18:40:21 -08:00
oti6858.c USB serial: add missing .usb_driver field in serial drivers 2011-01-22 18:38:59 -08:00
oti6858.h
pl2303.c USB: serial: handle Data Carrier Detect changes 2011-01-22 18:53:26 -08:00
pl2303.h drivers: update to pl2303 usb-serial to support Motorola cables 2011-01-22 18:44:38 -08:00
qcaux.c USB serial: add missing .usb_driver field in serial drivers 2011-01-22 18:38:59 -08:00
qcserial.c USB: qcserial: Enable Diagnostics Monitor and GPS ports on Gobi 2000 2010-10-22 10:21:49 -07:00
safe_serial.c USB: safe_serial: straighten out read processing 2010-05-20 13:21:49 -07:00
sam-ba.c USB: sam-ba: add driver for Atmel SAM Boot Assistant (SAM-BA) 2010-10-22 10:21:20 -07:00
siemens_mpi.c USB serial: add missing .usb_driver field in serial drivers 2011-01-22 18:38:59 -08:00
sierra.c drivers/usb: Remove unnecessary return's from void functions 2010-08-10 14:25:42 +02:00
spcp8x5.c USB: serial: handle Data Carrier Detect changes 2011-01-22 18:53:26 -08:00
ssu100.c USB: ssu100: remove max_packet_size calculation 2010-11-11 05:51:15 -08:00
symbolserial.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ti_usb_3410_5052.c USB: ti_usb: fix module removal 2011-02-03 16:40:59 -08:00
ti_usb_3410_5052.h USB: ti_usb_3410_5052: adding multitech dialup fax/modem devices 2010-04-22 15:18:20 -07:00
usb_debug.c USB serial: add missing .usb_driver field in serial drivers 2011-01-22 18:38:59 -08:00
usb_wwan.c USB: serial: usb_wwan: Add missing uaccess.h / fix build failure 2010-12-10 14:18:36 -08:00
usb-serial.c USB serial: add missing .usb_driver field in serial drivers 2011-01-22 18:38:59 -08:00
usb-wwan.h usb-wwan: implement TIOCGSERIAL and TIOCSSERIAL to avoid blocking close(2) 2010-11-30 16:44:57 -08:00
visor.c USB: visor: fix initialisation of UX50/TH55 devices 2010-10-22 10:22:08 -07:00
visor.h USB: visor.h: checkpatch cleanups 2010-05-20 13:21:47 -07:00
vivopay-serial.c USB: serial: Add support for ViVOtech ViVOpay devices. 2010-03-02 14:54:57 -08:00
whiteheat.c drivers/usb: Remove unnecessary return's from void functions 2010-08-10 14:25:42 +02:00
whiteheat.h
zio.c USB Serial Driver: ZIO Motherboard 2010-05-20 13:21:32 -07:00