Index: kern/subr_bus.c =================================================================== RCS file: /home/dcvs/src/sys/kern/subr_bus.c,v retrieving revision 1.38 diff -u -p -r1.38 subr_bus.c --- kern/subr_bus.c 5 May 2007 16:52:55 -0000 1.38 +++ kern/subr_bus.c 29 Jul 2007 09:23:09 -0000 @@ -2618,9 +2618,6 @@ driver = dmd->dmd_driver; PDEBUG(("Loading module: driver %s on bus %s", DRIVERNAME(driver), dmd->dmd_busname)); - error = devclass_add_driver(bus_devclass, driver); - if (error) - break; /* * If the driver has any base classes, make the @@ -2633,8 +2630,12 @@ if (driver->baseclasses) parentname = driver->baseclasses[0]->name; else parentname = NULL; - *dmd->dmd_devclass = devclass_find_internal(driver->name, + *dmd->dmd_devclass = devclass_find_internal(driver->name, parentname, TRUE); + + error = devclass_add_driver(bus_devclass, driver); + if (error) + break; break; case MOD_UNLOAD: