HomeFreeBSD

bus_generic_detach: Delete children after detaching them

Description

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

Details

Provenance
jhbAuthored on Thu, Jan 2, 6:21 PM
Reviewer
imp
Differential Revision
D47959: bus_generic_detach: Delete children after detaching them
Parents
rG28f5e880e8b2: Use device_delete_children instead of explicit calls to device_delete_child
Branches
Unknown
Tags
Unknown