[lkml]   [2006]   [Mar]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: 2.6.16-rc5 pppd oops on disconnects
Bob Copeland wrote:

> dmesg follows...
> 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

> ...

> [<c017585e>] sysfs_hash_and_remove+0x34/0x10a

OK, the cdc-acm driver disconnect/close seems to behave correctly
as I first thought. tty_unregister_device is only called once. The reference
counting is correct. acm->tty still needs to be set to NULL on the final
close, but that is not the problem you are seeing.

I'm looking again at the sysfs stuff as both acm_disconnect
and tty_unregister_device (called from acm_tty_close) remove sysfs entries.
There may be some interaction of entries (name space
collision?) such that acm_disconnect releases a sysfs entry
that tty_unregister_device tries to release again (hence the slab poisoning
flagging a reference to already released memory). I'm not
familiar with this so it may take me a while.

Feel free to bug others about this, I don't mean to interfere
if someone else has a better idea.

Thanks for your persistence,

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2006-03-11 23:01    [W:0.074 / U:0.580 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site