kernel trap 12

Matthew Dillon dillon at apollo.backplane.com
Sat Jul 17 10:58:19 PDT 2004


:I had already done that yesterday.
:Shortcutting the device_quiet() doesn't help at all.
:
:The device_printf() was something I didn't try yet.  Combined with BUS_DEBUG
:still in my kernel it yields:
:
:devclass_find_internal:115: looking for nexus
:devclass_add_device:404: (null) in devclass nexus
:devclass_alloc_unit:353: unit 0 in devclass nexus
:devclass_alloc_unit:393: now: unit 0 in devclass nexus
:root_bus_configure:2309: .
:devclass_find_driver_internal:253: nexus in devclass root
:device_probe_child:641: Trying nexus
:nexus0: nexus_probe()
:
:After that it kernel trap 12's.
:
:-- 
:Jeroen Ruigrok van der Werven <asmodai(at)wxs.nl> / asmodai / kita no mono

    Try this patch to add more debugging info, then track the addresses 
    that are printed just before the panic down via a 'nm -n' of your
    kernel.debug.

    It looks like one of the drivers must have an unspecified identify
    function.  Since there is no default in device_if.m it will crash.

					-Matt
					Matthew Dillon 
					<dillon at xxxxxxxxxxxxx>

Index: subr_bus.c
===================================================================
RCS file: /cvs/src/sys/kern/subr_bus.c,v
retrieving revision 1.21
diff -u -r1.21 subr_bus.c
--- subr_bus.c	8 Jul 2004 12:43:32 -0000	1.21
+++ subr_bus.c	17 Jul 2004 17:55:00 -0000
@@ -1776,8 +1776,11 @@
 	devclass_t dc = dev->devclass;
 	driverlink_t dl;
 
-	TAILQ_FOREACH(dl, &dc->drivers, link)
+	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