USB: serial: regression (oops) at module unload in usb-next

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Alan and Greg,

There seems to be a problem with the new API for serial driver
registration/deregistration.

I get the following oops with usb-next when unloading a usb-serial
driver (verified with both ftdi_sio and pl2303) while the device is
connected:


[  261.314161] USB Serial deregistering driver pl2303
[  261.315285] usbcore: deregistering interface driver pl2303
[  261.315721] drivers/usb/serial/usb-serial.c: usb_serial_disconnect
[  261.317159] ------------[ cut here ]------------
[  261.317182] WARNING: at fs/sysfs/inode.c:323 sysfs_hash_and_remove+0x97/0xa0()
[  261.317208] Hardware name: Vostro 1520
[  261.317217] sysfs: can not remove 'ttyUSB0', no directory
[  261.317225] Modules linked in: pl2303(-) usbserial
[  261.317255] Pid: 1089, comm: modprobe Not tainted 3.3.0-rc7+ #82
[  261.317279] Call Trace:
[  261.317295]  [<c102d862>] warn_slowpath_common+0x72/0xa0
[  261.317310]  [<c113abb7>] ? sysfs_hash_and_remove+0x97/0xa0
[  261.317324]  [<c113abb7>] ? sysfs_hash_and_remove+0x97/0xa0
[  261.317352]  [<c102d933>] warn_slowpath_fmt+0x33/0x40
[  261.317365]  [<c113abb7>] sysfs_hash_and_remove+0x97/0xa0
[  261.317381]  [<c113d350>] sysfs_remove_link+0x20/0x30
[  261.317399]  [<c12edd50>] driver_sysfs_remove+0x20/0x30
[  261.317426]  [<c12edd8b>] __device_release_driver+0x2b/0xb0
[  261.317441]  [<c12eded7>] device_release_driver+0x27/0x40
[  261.317454]  [<c12ed4b4>] bus_remove_device+0xd4/0x130
[  261.317468]  [<c12eb871>] ? device_remove_attrs+0x21/0x90
[  261.317495]  [<c12eb9c5>] device_del+0xe5/0x170
[  261.317514]  [<f806f74e>] usb_serial_disconnect+0xce/0x150 [usbserial]
[  261.317532]  [<c1338186>] usb_unbind_interface+0x46/0x160
[  261.317547]  [<c12eddc4>] __device_release_driver+0x64/0xb0
[  261.317574]  [<c12edea7>] driver_detach+0x97/0xa0
[  261.317587]  [<c12ecfdc>] bus_remove_driver+0x6c/0xe0
[  261.317602]  [<c12ee9b9>] driver_unregister+0x49/0x80
[  261.317618]  [<c105adbb>] ? sub_preempt_count+0x7b/0xb0
[  261.317645]  [<c1337f05>] usb_deregister+0xa5/0xb0
[  261.317662]  [<f806e8ed>] usb_serial_deregister_drivers+0x2d/0x40 [usbserial]
[  261.317678]  [<f8102a76>] pl2303_driver_exit+0x12/0x14 [pl2303]
[  261.317692]  [<c108038d>] sys_delete_module+0x15d/0x240
[  261.317721]  [<c1104d5e>] ? mntput+0x1e/0x30
[  261.317736]  [<c1458543>] ? sysenter_exit+0xf/0x18
[  261.317754]  [<c107317c>] ? trace_hardirqs_on_caller+0xec/0x170
[  261.317781]  [<c1458510>] sysenter_do_call+0x12/0x36
[  261.317792] ---[ end trace 2d30ba1801cf0bd6 ]---
[  261.318374] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0


The problem appears to be related to the reversed order of
deregistration (usb-serial driver is now deregistered before usb
driver).

I've verified my suspicion in so far as commit 97b6b6d2339f67
("usb-serial: use new registration API in [d-h]* drivers") in usb-next
is indeed the commit introducing the regression for ftdi_sio.


Thanks,
Johan
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux