Page MenuHomeFreeBSD

D47367.diff
No OneTemporary

D47367.diff

diff --git a/sys/dev/superio/superio.c b/sys/dev/superio/superio.c
--- a/sys/dev/superio/superio.c
+++ b/sys/dev/superio/superio.c
@@ -768,6 +768,18 @@
return (child);
}
+static void
+superio_child_deleted(device_t dev, device_t child)
+{
+ struct superio_devinfo *dinfo;
+
+ dinfo = device_get_ivars(child);
+ if (dinfo == NULL)
+ return;
+ resource_list_free(&dinfo->resources);
+ free(dinfo, M_DEVBUF);
+}
+
static int
superio_read_ivar(device_t dev, device_t child, int which, uintptr_t *result)
{
@@ -1078,6 +1090,7 @@
DEVMETHOD(device_resume, bus_generic_resume),
DEVMETHOD(bus_add_child, superio_add_child),
+ DEVMETHOD(bus_child_deleted, superio_child_deleted),
DEVMETHOD(bus_child_detached, superio_child_detached),
DEVMETHOD(bus_child_location, superio_child_location),
DEVMETHOD(bus_child_pnpinfo, superio_child_pnp),

File Metadata

Mime Type
text/plain
Expires
Sun, Jan 18, 7:43 AM (2 h, 32 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27706517
Default Alt Text
D47367.diff (851 B)

Event Timeline