--- src/sys/kern/subr_bus.c 2007/05/05 16:52:55 1.38 +++ src/sys/kern/subr_bus.c 2007/07/31 22:40:50 1.38.2.1 @@ -2618,9 +2618,6 @@ driver_module_handler(module_t mod, int 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 @@ driver_module_handler(module_t mod, int 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: