summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_bus.c
diff options
context:
space:
mode:
authordavidxu <davidxu@FreeBSD.org>2003-01-15 14:58:07 +0000
committerdavidxu <davidxu@FreeBSD.org>2003-01-15 14:58:07 +0000
commit0893470fa03087092789a976d3b98c1a1b604efb (patch)
tree23bd8601c441bac6ebe72ef31fabd81aad5f83b4 /sys/kern/subr_bus.c
parent4743c6079e199ae4df4fe4d0525ec85ce489b0ea (diff)
downloadFreeBSD-src-0893470fa03087092789a976d3b98c1a1b604efb.zip
FreeBSD-src-0893470fa03087092789a976d3b98c1a1b604efb.tar.gz
Don't forget to disconnect object from class.
Diffstat (limited to 'sys/kern/subr_bus.c')
-rw-r--r--sys/kern/subr_bus.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c
index 0732e3b..d562a43 100644
--- a/sys/kern/subr_bus.c
+++ b/sys/kern/subr_bus.c
@@ -240,7 +240,7 @@ struct dev_event_info
TAILQ_HEAD(devq, dev_event_info);
-struct dev_softc
+struct dev_softc
{
int inuse;
int nonblock;
@@ -996,7 +996,7 @@ device_delete_child(device_t dev, device_t child)
TAILQ_REMOVE(&dev->children, child, link);
TAILQ_REMOVE(&bus_data_devices, child, devlink);
device_set_desc(child, NULL);
- free(child, M_BUS);
+ kobj_delete((kobj_t) child, M_BUS);
bus_data_generation_update();
return (0);
@@ -1417,6 +1417,7 @@ device_set_driver(device_t dev, driver_t *driver)
dev->softc = malloc(driver->size, M_BUS,
M_NOWAIT | M_ZERO);
if (!dev->softc) {
+ kobj_delete((kobj_t) dev, 0);
kobj_init((kobj_t) dev, &null_class);
dev->driver = NULL;
return (ENOMEM);
OpenPOWER on IntegriCloud