On Wed, 1 Aug 2007, A. Kalten wrote: > On Wed, 1 Aug 2007 11:55:25 -0400 (EDT) > Alan Stern <[EMAIL PROTECTED]> wrote: > > > > > This shouldn't make any difference. Your later message was > > self-contradictory; you wrote that the oops occurred only if the > > modules were loaded before the modem was plugged in, and that it also > > occurred if the modules were loaded after the modem was plugged in. > > > > Sorry about the confusion. At first I just assumed that the kernel > oops occured under all conditions, but on closer inspection I found > that it only occurs when the modules are loaded before the modem > is plugged in. > > So, to get things straight: > > 1) plug in modem > 2) load modules > 3) unload modules > No kernel oops > > 1) load modules > 2) plug in modem > 3) unload modules > kernel oops
Okay, I understand. > > Here's an additional patch for 2.6.22, to be applied along with the > > previous patch. Let's see what it shows. > > > > 2.6.22 has been patched with this and the previous patch. > > Here is the kernel log containing the oops. It results from the > following sequence (I included the time as well): There's some useful information here but still not enough. I've got a third patch for you to add in; hopefully we are zeroing in on the correct spot. For this test you don't have to run the non-oopsing scenarios. Alan Stern Index: 2.6.22/drivers/base/core.c =================================================================== --- 2.6.22.orig/drivers/base/core.c +++ 2.6.22/drivers/base/core.c @@ -24,6 +24,8 @@ #include "base.h" #include "power/power.h" +extern int attrtest; + int (*platform_notify)(struct device * dev) = NULL; int (*platform_notify_remove)(struct device * dev) = NULL; @@ -926,7 +928,10 @@ void device_del(struct device * dev) up(&dev->class->sem); } } +attrtest = 1; +printk("%s: before remove uevent\n", dev->bus_id); device_remove_file(dev, &dev->uevent_attr); +printk("after remove uevent\n"); device_remove_attrs(dev); bus_remove_device(dev); @@ -945,7 +950,9 @@ void device_del(struct device * dev) if (dev->bus) blocking_notifier_call_chain(&dev->bus->bus_notifier, BUS_NOTIFY_DEL_DEVICE, dev); +printk("%s: before remove power\n", dev->bus_id); device_pm_remove(dev); +printk("after remove power\n"); kobject_uevent(&dev->kobj, KOBJ_REMOVE); kobject_del(&dev->kobj); if (parent) ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel