OK, here is another printk patch. Leave the previous one in place. --- linux-2.6.16-rc6/drivers/base/class.c 2006-03-14 20:13:59.000000000 -0600 +++ b/drivers/base/class.c 2006-03-14 20:13:35.000000000 -0600 @@ -666,7 +666,13 @@ void class_device_del(struct class_devic if (class_dev->dev) { class_name = make_class_name(class_dev); + printk("class_device_del call sysfs_remove_link class_dev=%p ref=%d dentry=%p\n", + class_dev, atomic_read(&class_dev->kobj.kref.refcount), + class_dev->kobj.dentry); sysfs_remove_link(&class_dev->kobj, "device"); + printk("class_device_del call sysfs_remove_link class_dev->dev=%p ref=%d dentry=%p class_name=%s\n", + class_dev->dev, atomic_read(&class_dev->dev->kobj.kref.refcount), + class_dev->dev->kobj.dentry, class_name); sysfs_remove_link(&class_dev->dev->kobj, class_name); } class_device_remove_file(class_dev, &class_dev->uevent_attr); --- linux-2.6.16-rc6/fs/sysfs/inode.c 2006-03-14 20:25:05.000000000 -0600 +++ b/fs/sysfs/inode.c 2006-03-14 20:24:56.000000000 -0600 @@ -233,6 +233,9 @@ void sysfs_hash_and_remove(struct dentry /* no inode means this hasn't been made visible yet */ return; + if (dir->d_inode == 0x6b6b6b6b) + printk("sysfs_hash_and_remove dir=%p d_inode=%p\n", dir, dir->d_inode); + mutex_lock(&dir->d_inode->i_mutex); list_for_each_entry(sd, &parent_sd->s_children, s_sibling) { if (!sd->s_element)
------------------------------------------------------- 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