Up to [cvs.NetBSD.org] / src / sys / sys
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
autoconf(9): New diagnostic to detect double-detach. - Rename dv_detached -> dv_detach_committed. - Add dv_detach_done, asserted false and then set in config_detach. dv_detach_done may appear redundant with dv_del_gen, but dv_del_gen will be used to safely detect config_detach on two valid references to a device (e.g., a bus detaching its child concurrently with drvctl detaching the same child), while dv_detach_done is strictly a diagnostic to detect races in the config_detach API. Currently the config_detach API itself is unsafe, but we can add a config_detach_release function that simultaneously releases and detaches a referenced device_t; this will continue to use dv_del_gen to safely avoid multiple detach, and dv_detach_done to check for races in usage.
pmf(9): Nix unused pmf prototypes. Maybe they were once meant to be implemented, but whatever plan that was must've gang agley a long time ago.
pmf(9): *_child_register never fails. Make it return void. No kernel bump because this isn't documented or used in any modules, only in dev/pci/pci.c and dev/cardbus/cardbus.c which are as far as I know always statically linked into the kernel. The next change, however, will require a revbump -- to make pmf_device_register return void so we can prune vast swaths of dead error branches.
kern: Move various pmf declarations to device_impl.h. These are used only inside subr_autoconf.c and subr_pmf.c. Let's stop having changes to these trigger rebuilds of all device drivers.
sys: Split struct device into a private device_impl.h. Include this only inside autoconf itself, and a few files that abuse autoconf in ways I can't confidently make easy fixes for. XXX kernel ABI change requires bump -- no more use of struct device internals allowed, previously done by some drivers