Greg KH <[EMAIL PROTECTED]> wrote: > > I would think it's something new too, as I did change that very line > that oopsed. That's why I found it odd that I couldn't reproduce it > anymore.
device_destroy() looks wrong. It alters the class->devices list outside its lock. --- 25/drivers/base/core.c~device_destroy-locking-fix Thu Jun 22 17:29:07 2006 +++ 25-akpm/drivers/base/core.c Thu Jun 22 17:29:34 2006 @@ -632,14 +632,13 @@ void device_destroy(struct class *class, list_for_each_entry(dev_tmp, &class->devices, node) { if (dev_tmp->devt == devt) { dev = dev_tmp; + list_del_init(&dev->node); break; } } up(&class->sem); - if (dev) { - list_del_init(&dev->node); + if (dev) device_unregister(dev); - } } EXPORT_SYMBOL_GPL(device_destroy); That won't be it though. Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&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