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/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel