On Wed, Jun 16, 2004 at 11:17:10AM +0200, Harald Welte wrote: > Apparently interface->dev is 0x10 here, thus usb_get_drvdata() inlined by > get_intfdata() dereferences 0x10+0x74 == 0x84
After some more debugging, it becomes obvious that
usb_serial_disconnect() is called twice.
First:
usb_serial_deregister()
usb_serial_disconnect()
kref_put()
usb_set_intfdata(interface, NULL)
[kref destrructor]
destroy_serial()
serial_shutdown()
cyberjack_shutdown()
return_serial()
[?]
port_release()
...
then, again [from where???]:
usb_serial_disconnect()
[see attached usb debug-enabed dmesg output. First it shows the output
captured while rmmod of a device that hasn't been used at all
(plug-rmmod). second part: plug-use-rmmod].
> Any ideas?
--
- Harald Welte <[EMAIL PROTECTED]> http://www.gnumonks.org/
============================================================================
Programming is like sex: One mistake and you have to support it your lifetime
good: usb 1-2.3: USB disconnect, address 4 drivers/usb/serial/usb-serial.c: usb_serial_disconnect serial=ef768258, serial->kref=ef768294, serial->kref->refcnt=1 drivers/usb/serial/usb-serial.c: destroy_serial - Reiner SCT Cyberjack USB card reader drivers/usb/serial/usb-serial.c: serial_shutdown drivers/usb/serial/cyberjack.c: cyberjack_shutdown drivers/usb/serial/usb-serial.c: return_serial cyberjack ttyUSB0: Reiner SCT Cyberjack USB card reader converter now disconnected from ttyUSB0 drivers/usb/serial/usb-serial.c: port_release - ttyUSB0 cyberjack 1-2.3:1.0: device disconnected bad: usbcore: deregistering driver cyberjack drivers/usb/serial/usb-serial.c: USB Serial deregistering driver Reiner SCT Cyberjack USB card reader drivers/usb/serial/usb-serial.c: usb_serial_disconnect serial=ef004438, serial->kref=ef004474, serial->kref->refcnt=1 drivers/usb/serial/usb-serial.c: destroy_serial - Reiner SCT Cyberjack USB card reader drivers/usb/serial/usb-serial.c: serial_shutdown drivers/usb/serial/cyberjack.c: cyberjack_shutdown drivers/usb/serial/usb-serial.c: return_serial cyberjack ttyUSB0: Reiner SCT Cyberjack USB card reader converter now disconnected from ttyUSB0 drivers/usb/serial/usb-serial.c: port_release - ttyUSB0 usbserial 1-2.3:1.0: device disconnected drivers/usb/serial/usb-serial.c: usb_serial_disconnect Unable to handle kernel NULL pointer dereference at virtual address 00000000 => serial_disconnect called twice.
signature.asc
Description: Digital signature
