kernel trap 12

Matthew Dillon dillon at apollo.backplane.com
Tue Jul 20 13:49:29 PDT 2004


:-On [20040720 22:12], Matthew Dillon (dillon at xxxxxxxxxxxxxxxxxxxx) wrote:
:>     Well, lets start with a stack trace ('trace' in ddb).
:
:panic(c0328fae, d1728260, c3081788, c03294f9, c3081788) at panic+0x97
:devclass_add_device(c3081788, d1728260) at devclass_add_device+0x83
:make_device(0,c03294f9,0,c04e6d84,c0182e6b) at make_device+0x11b
:root_bus_module_handler()
:module_register_init()
:
:This ought to be enough for what we need...
:

    Ugh.  wild goose chase.  That case must be occuring more then once.  It
    died adding the root device which has no name but does have a device
    class, so that can't be it.  Lets try something else.

    Remove the assertion and add some more printf's to bus_generic_probe():

						-Matt

Index: kern/subr_bus.c
===================================================================
RCS file: /cvs/src/sys/kern/subr_bus.c,v
retrieving revision 1.21
diff -u -r1.21 subr_bus.c
--- kern/subr_bus.c	8 Jul 2004 12:43:32 -0000	1.21
+++ kern/subr_bus.c	20 Jul 2004 20:48:15 -0000
@@ -1776,8 +1776,19 @@
 	devclass_t dc = dev->devclass;
 	driverlink_t dl;
 
-	TAILQ_FOREACH(dl, &dc->drivers, link)
+	printf("bus_generic_probe: %p dc=%p driver=%p "
+		"unit=%d name=%s desc=%s busy=%d state=%d flags=%08x\n",
+		dev, dc, dev->driver, 
+		dev->unit, dev->nameunit, dev->desc,
+		dev->busy, dev->state, dev->flags);
+	if (dev->driver->name)
+		printf("bus_generic_probe: DNAME: %s\n", dev->driver->name);
+
+	TAILQ_FOREACH(dl, &dc->drivers, link) {
+		printf("generic probe of driverlink %p\n", dl);
+		printf("generic probe of driver %p\n", dl->driver);
 		DEVICE_IDENTIFY(dl->driver, dev);
+	}
 
 	return(0);
 }





More information about the Bugs mailing list