On Wed, Jun 16, 2004 at 07:04:09PM +0200, Harald Welte wrote:
> 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].

Ick, that's not good.  Exactly what sequence of steps did you do to
achive it?

thanks,

greg k-h


-------------------------------------------------------
This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference
Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer
Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA
REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to