diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c --- a/sys/kern/subr_bus.c +++ b/sys/kern/subr_bus.c @@ -624,7 +624,12 @@ devclass_t devclass_create(const char *classname) { - return (devclass_find_internal(classname, NULL, TRUE)); + devclass_t rv; + + bus_topo_lock(); + rv = devclass_find_internal(classname, NULL, TRUE); + bus_topo_unlock(); + return (rv); } /** @@ -638,7 +643,12 @@ devclass_t devclass_find(const char *classname) { - return (devclass_find_internal(classname, NULL, FALSE)); + devclass_t rv; + + bus_topo_lock(); + rv = devclass_find_internal(classname, NULL, FALSE); + bus_topo_unlock(); + return (rv); } /**