__device_links_no_driver(9)
π
__device_links_no_driver β Kernel API Manual β¨
okay so bestie, buckle up, because this one is a lore drop from the Kernel API Manual and it's honestly giving "quiet cleanup era" π
πΈ NAME πΈ
__device_links_no_driver β update the links of a device that doesn't have a driver anymore π«Ά
β¨ SYNOPSIS β¨
void __device_links_no_driver (struct device *dev );
π ARGUMENTS π
devβ the device that's out here with no driver π (the original page literally spells it "drvier" β we love a typo moment, no cap, we're keeping it fr fr π)
π¦ DESCRIPTION π¦
so basically this function goes through and deletes all the non-persistent links from this device over to any of its suppliers βοΈβ¨ like, gone, unfollowed, blocked, archived.
The persistent links though? They stay. They're not going anywhere, they're main character energy π
β but their status gets flipped to "available", unless they're already sitting in the "supplier unbind in progress" state, in which case there's literally nothing to do and they don't need updating π§
And! Links that don't have the DL_FLAG_MANAGED flag set? Completely ignored. Not our business. We don't see them, they don't see us π
lowkey important: this is the internal, underscore-prefixed version of things β the page is about cleanup when a device loses its driver, so don't go summoning it unless you know why you're there π₯
β SEE ALSO β
Kernel file ./drivers/base/core.c β and it comes with an entire friend group of related functions, so here's the whole squad, iykyk π«Ά:
__fwnode_link_add(9)__fwnode_link_del(9)__fwnode_link_cycle(9)fwnode_links_purge_suppliers(9)fwnode_links_purge_consumers(9)fwnode_links_purge(9)__fwnode_links_move_consumers(9)__fw_devlink_pickup_dangling_consumers(9)fw_devlink_refresh_fwnode(9)device_is_dependent(9)device_pm_move_to_tail(9)device_link_wait_removal(9)device_link_add(9)device_link_del(9)device_link_remove(9)device_links_check_suppliers(9)__device_links_queue_sync_state(9)device_links_flush_sync_list(9)device_links_force_bind(9)device_links_driver_bound(9)device_links_no_driver(9)device_links_driver_cleanup(9)device_links_busy(9)device_links_unbind_consumers(9)device_links_purge(9)wait_for_init_devices_probe(9)fwnode_is_ancestor_of(9)fwnode_get_next_parent_dev(9)__fw_devlink_relax_cycles(9)fw_devlink_create_devlink(9)__fw_devlink_link_to_consumers(9)__fw_devlink_link_to_suppliers(9)dev_driver_string(9)device_release(9)devm_device_add_group(9)devices_kset_move_before(9)devices_kset_move_after(9)devices_kset_move_last(9)device_create_file(9)device_remove_file(9)device_remove_file_self(9)device_create_bin_file(9)device_remove_bin_file(9)device_initialize(9)kobject_has_children(9)dev_set_name(9)device_add(9)device_register(9)get_device(9)put_device(9)device_del(9)device_unregister(9)device_get_devnode(9)device_for_each_child(9)device_for_each_child_reverse(9)device_for_each_child_reverse_from(9)device_find_child(9)device_offline(9)device_online(9)__root_device_register(9)root_device_unregister(9)device_create(9)device_create_with_groups(9)device_destroy(9)device_rename(9)device_move(9)device_change_owner(9)device_shutdown(9)dev_err_probe(9)dev_warn_probe(9)set_primary_fwnode(9)set_secondary_fwnode(9)device_remove_of_node(9)device_add_of_node(9)device_set_of_node_from_dev(9)get_dev_from_fwnode(9)
π§ sign-off π§
this little icon lives in ./drivers/base, and the page is stamped October 2026 β so yeah, it's future-dated and that's just her vibe π slay, go read your kernel source, ily, bye πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms