__fw_devlink...ng_consumers(9)
π
__fw_devlink_pickup_dangling_consumers (9) β Kernel API Manual, but make it make sense β¨
okay so bestie, you clicked into a kernel API page, and yes the manual name is literally Kernel API Manual β we're in the big leagues now. this one is a function in ./drivers/base/core.c and it's lowkey about rescuing "dangling consumers" from being orphaned, which honestly? main character energy. let's get into it π«Ά
πΈ NAME πΈ
__fw_devlink_pickup_dangling_consumers β Pick up dangling consumers, fr fr. that's the whole vibe check of this function π
β¨ SYNOPSIS β¨
void __fw_devlink_pickup_dangling_consumers (struct fwnode_handle
*fwnode , struct fwnode_handle *new_sup );
she takes two struct fwnode_handle * args and returns void, so likeβ¦ no return value, no notes, she just does the thing and dips π
π ARGUMENTS π
fwnodeβ the fwnode you're picking dangling consumers up from. like, this is the one being examined, bestie π¦new_supβ the fwnode of the new supplier. the glow-up destination, iykyk π
π¦ DESCRIPTION π¦
so here's the tea β and the logic is genuinely iconic:
if the fwnode has a corresponding struct device and that device supports probing β and yes, that means it's been added to a bus β then we want to let fw_devlink create MANAGED device links to this device. so in that case? leave fwnode and its descendant's fwnode links alone. hands off. she's fine. don't touch π
otherwise, you move its consumers over to the new supplier, new_sup. no cap, that's the whole move β dangling consumers get picked up and re-homed π
ngl this is exactly the kind of "if you're properly attached to a bus, you're self-sufficient; otherwise come here little orphan" energy we love to see π₯Ί
π SEE ALSO π
the whole friend group, and yes there's a lot of them β every single one, no skipping πΈ:
__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_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_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)
and the source file for all of this drama is the Kernel file ./drivers/base/core.c π§
β sign-off β
that's the page, bestie β sourced from ./drivers/base, dated October 2026, and the header/footer both spell the name as __fw_devlink...ng_consumers(9) because the man page formatter was being a little dramatic with the truncation π slay either way, you understood it, and that's what matters πβ¨π
π¦ 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