Page MenuHomeFreeBSD

gpiobus: use bus_generic_detach when detaching
ClosedPublic

Authored by vexeduxr on Aug 31 2025, 2:45 PM.
Tags
None
Referenced Files
F137887854: D52305.diff
Wed, Nov 26, 9:54 PM
Unknown Object (File)
Tue, Nov 25, 7:44 PM
Unknown Object (File)
Tue, Nov 11, 5:07 PM
Unknown Object (File)
Tue, Nov 11, 1:56 AM
Unknown Object (File)
Oct 27 2025, 4:47 AM
Unknown Object (File)
Oct 21 2025, 10:14 AM
Unknown Object (File)
Oct 21 2025, 2:04 AM
Unknown Object (File)
Oct 21 2025, 2:04 AM
Subscribers
None

Details

Summary

Use bus_generic_detach instead of bus_detach_children so the children
actually get deleted.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

vexeduxr created this revision.

This fixes the BUS_DELETED_CHILD call for acpi_gpiobus. I think it might be papering over a bug though.
When device_delete_child is called, say with device_delete_child(gpio0, gpiobus0), it calls device_detach on gpiobus0. It then goes through it's children and recursively calls device_delete_child on them. When one of these children reach the BUS_CHILD_DELETED call, gpiobus0 has already been detached, so the call never reaches it's implementation.

Sorry I missed this earlier. Please merge into 15.0 if possible.

This revision is now accepted and ready to land.Tue, Oct 28, 6:31 PM
In D52305#1219629, @jhb wrote:

Sorry I missed this earlier. Please merge into 15.0 if possible.

NP. Will do.