On Tue, Mar 14, 2006 at 09:58:52AM -0600, Paul Fulghum wrote: > On Tue, 2006-03-14 at 10:42 -0500, Alan Stern wrote: > > Psul, the best way to approach a problem like this is by massive debugging > > printks. > > That's what I have been doing, and I just posted another > such patch for Bob to test. I don't have any of the > equipment to test this myself, so I am relying on > Bob's willingness to continue. > > Here was some earlier output. > > acm_tty_open tty=cd254af8 acm=ce24eca0 acm->used=00000000 > PPP BSD Compression module registered > PPP Deflate Compression module registered > usb 1-2: USB disconnect, address 6 > acm_disconnect intf=ce99f720 acm=ce24eca0 usb_dev=ce24f4b8 > acm_disconnect acm->used=1 acm->dev=ce24f4b8 acm->tty=cd254af8 > acm_disconnect intf=cefb6760 acm=00000000 usb_dev=ce24f4b8 > acm_tty_close tty=cd254af8 filp=ce96511c acm=ce24eca0 > acm_tty_close acm->used=1 acm->dev=00000000 > Unable to handle kernel paging request at virtual address 6b6b6bfb
Ah, the fun disconnect and then close issues :( The usb-serial code had loads of races and problems with this (the Palm devices do this all the time), so you might want to look there at how the tty handling is done to make sure everything is correct. Ah, wait, that's the issue right there. You need to increment the reference count of the object on open and then decrement it on close. That way the last close will drop the last reference, and you do that _after_ the tty cleanup. Care to make up a patch for that? thanks, greg k-h ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel