From b196276c20b577b364372f1aa1a646b9ce34bf5c Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Thu, 2 Jan 2025 13:21:02 -0500 Subject: bus_generic_detach: Delete children after detaching them This provides better semantics as a standalone DEVMETHOD for device_attach as bus drivers should remove child devices they created as part of detach cleanup. The implementation calls bus_detach_children() first to permit child devices an opportunity to veto the detach operation. If that succeeds, device_delete_children() is used to delete the child devices. This requires fixing various drivers that were deleting devices explicitly (via a device_t pointer cached in the softc) after calling bus_generic_detach to stop doing that and just rely on bus_generic_detach to remove child devices. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D47959 --- sys/dev/bce/if_bce.c | 1 - 1 file changed, 1 deletion(-) (limited to 'sys/dev/bce') diff --git a/sys/dev/bce/if_bce.c b/sys/dev/bce/if_bce.c index 226fca16ac28..73af49015e52 100644 --- a/sys/dev/bce/if_bce.c +++ b/sys/dev/bce/if_bce.c @@ -1544,7 +1544,6 @@ bce_detach(device_t dev) ifmedia_removeall(&sc->bce_ifmedia); else { bus_generic_detach(dev); - device_delete_child(dev, sc->bce_miibus); } /* Release all remaining resources. */ -- cgit v1.3