git: c8fa54882226 - main - isa: Use a bus_child_deleted method to free ivars for children

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Fri, 01 Nov 2024 14:13:06 UTC
The branch main has been updated by jhb:

URL: https://cgit.FreeBSD.org/src/commit/?id=c8fa54882226d89e987fb26b94979aed85a3bd9a

commit c8fa54882226d89e987fb26b94979aed85a3bd9a
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2024-11-01 14:09:31 +0000
Commit:     John Baldwin <jhb@FreeBSD.org>
CommitDate: 2024-11-01 14:09:31 +0000

    isa: Use a bus_child_deleted method to free ivars for children
    
    Reviewed by:    imp
    Differential Revision:  https://reviews.freebsd.org/D47368
---
 sys/isa/isa_common.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/sys/isa/isa_common.c b/sys/isa/isa_common.c
index 22c473108e2f..519f9353b794 100644
--- a/sys/isa/isa_common.c
+++ b/sys/isa/isa_common.c
@@ -622,6 +622,12 @@ isa_add_child(device_t dev, u_int order, const char *name, int unit)
 	return (child);
 }
 
+static void
+isa_child_deleted(device_t dev, device_t child)
+{
+	free(device_get_ivars(child), M_ISADEV);
+}
+
 static int
 isa_print_all_resources(device_t dev)
 {
@@ -1058,6 +1064,7 @@ static device_method_t isa_methods[] = {
 
 	/* Bus interface */
 	DEVMETHOD(bus_add_child,	isa_add_child),
+	DEVMETHOD(bus_child_deleted,	isa_child_deleted),
 	DEVMETHOD(bus_print_child,	isa_print_child),
 	DEVMETHOD(bus_probe_nomatch,	isa_probe_nomatch),
 	DEVMETHOD(bus_read_ivar,	isa_read_ivar),